Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
glpi-logbleed — PoC per CVE-2026-53629, SQL injection cieca nel filtro del log di cronologia di GLPI | Kitploit
Strumenti/GitHubGitHub/5kr1pt/glpi-logbleed
Analisi delle VulnerabilitàExploitSfruttamento di Applicazioni WebEsfiltrazione DatiPenetration Testing
GitHub5kr1pt/glpi-logbleed

glpi-logbleed

PoC per CVE-2026-53629, SQL injection cieca nel filtro del log di cronologia di GLPI

Vedi Repository
121 mese faNon ancora revisionato
Sito web

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

glpi-logbleed

glpi-logbleed in esecuzione

Iniezione SQL cieca nel filtro dei log di cronologia di GLPI. CVE-2026-53629, corretta in 11.0.8 e 10.0.26, presente fin dalla 9.4.0.

Richiede un account qualsiasi con il diritto di lettura logs. Il profilo Read-Only predefinito lo include.

Advisory: GHSA-cpcj-x335-5cmh Resoconto: come l'ho trovata

Il bug

Log::convertFiltersValuesToSqlCriteria() divide il filtro affected_fields in key:operator:values. La patch per CVE-2026-29047 validava l'operatore e applicava il cast all'indice dell'array, lasciando $key intatta.

DBmysqlIterator::analyseCrit() non mette tra virgolette , e come nomi di colonna. Ricorre nei loro valori e questa ricorsione termina su un ramo deprecato che restituisce stringhe semplici come SQL grezzo.

OR
AND
NOT

Quindi OR come chiave inserisce nella clausola WHERE tutto ciò che si vuole:

root@kitploit:~
/front/log/export.php?itemtype=Entity&id=0&filter[affected_fields][0]=OR::1 AND sleep(5)
root@kitploit:~
SELECT * FROM `glpi_logs`
WHERE `items_id` = '0' AND `itemtype` = 'Entity'
AND (((((1 AND sleep(5))))))

La scheda Cronologia fa lo stesso tramite filters[affected_fields][0].

Vincoli del payload

explode(',', $values) spezza qualsiasi cosa contenga una virgola, quindi SUBSTRING(s,1,1) e IF(a,b,c) sono da escludere. CASE WHEN ... THEN ... ELSE ... END e MID(s FROM n FOR 1) fanno al caso nostro. Letterali esadecimali al posto delle virgolette: 0x676c7069 è glpi.

Il payload viene eseguito una volta per ogni riga in glpi_logs, quindi lo sleep si moltiplica. Sei righe con sleep(5) equivalgono a 30 secondi. Su un'istanza reale riducilo a 0.1 o la richiesta non tornerà mai.

Esecuzione

root@kitploit:~
pip install requests
python3 glpi_sqli_extract.py http://glpi.lab.local -u readonly -p readonly

Legge glpi_users.password un carattere alla volta tramite ricerca binaria. --id per un altro utente, --sleep e --threshold per bersagli più lenti.

Lo stesso trucco legge api_token, personal_token e le credenziali SMTP e LDAP in glpi_configs.

Correzione

Aggiorna. Se non puoi, rimuovi il diritto di lettura logs dai profili che non ne hanno bisogno. Il progetto upstream ha aggiunto la chiave alla whitelist:

root@kitploit:~
$allowed_keys = ['linked_action', 'id_search_option', 'itemtype_link'];
if (!in_array($key, $allowed_keys, true)) {
    continue;
}

Pubblicato dopo il rilascio della correzione. Non eseguirlo su sistemi che non sono tuoi.

Scarica lo strumento