
PoC en Python que explota una inyección SQL ciega basada en tiempo en Nagios XI para extraer el contenido de la base de datos, con extracción mediante búsqueda binaria multihilo y selección de esquema/tabla/columna por CLI.
Repositorio: MettHK/CVE-2023-48084-Revised
Versión actualizada de Hamibubu/CVE-2023-48084 con multihilo, extracción mediante búsqueda binaria y opciones de línea de comandos para seleccionar base de datos / tabla / columna.
No es el repositorio original. Este es un PoC derivado/mejorado. El crédito del trabajo original corresponde a Hamibubu.
Solo para pruebas de seguridad autorizadas y uso educativo. No utilices esto contra sistemas que no sean tuyos o para los que no tengas permiso explícito de prueba. Los autores y colaboradores no son responsables del mal uso.
CVE-2023-48084: Nagios XI anterior a la versión 5.11.3 contiene una vulnerabilidad de inyección SQL a través de la herramienta de modificación masiva.
Este PoC explota una inyección SQL ciega basada en tiempo en:
/admin/banner_message-ajaxhelper.php?action=acknowledge_banner_message&id=(SQL)
Necesitas una cookie de sesión válida de usuario no administrador (nagiosxi) o un token de API.
requests (obligatorio)pwntools (opcional; salida de progreso más bonita)git clone https://github.com/MettHK/CVE-2023-48084-Revised.git
cd CVE-2023-48084-Revised
pip install -r requirements.txt
# Modo interactivo (descubre esquemas → tablas → columnas)
python3 CVE-2023-48084.py -u https://target.example/nagiosxi -c '<cookie>'
python3 CVE-2023-48084.py -u https://target.example/nagiosxi -a '<api_token>'
# Vía rápida: base de datos + tabla + columnas conocidas
python3 CVE-2023-48084.py \
-u https://target.example/nagiosxi \
-c '<cookie>' \
-d nagiosxi \
-t xi_users \
-C username,email,password \
-w 15 \
--delay 1.2
No recomiendo usar más de 2 workers, ya que podría devolver resultados incorrectos
--delay (p. ej. 2) o reduce -w (p. ej. 5).-w 15–20).-d / -t / -C cuando ya conozcas el esquema objetivo para evitar un descubrimiento largo.| Área | Qué cambió |
|---|
| Extracción | Búsqueda binaria para la longitud de la cadena y los caracteres ASCII (muchas menos peticiones) |
| Rendimiento | Extracción de caracteres con multihilo (-w / --workers) |
| CLI | -d / --database — omitir el descubrimiento del esquema |
| CLI | -t / --table — omitir el descubrimiento de tablas (requiere -d) |
| CLI | -C / --columns — columnas separadas por comas; omitir el descubrimiento de columnas (requiere -t) |
| Temporización | --delay, --threshold, --max-length configurables |
| Robustez | Sesiones HTTP por hilo; pwntools opcional (barras de progreso) con un respaldo simple |
| Documentación | Crédito/enlace al original; sin nombres de host de laboratorio ni artefactos de CTF en los ejemplos |
| Flag | Descripción |
|---|
-u / --url | URL base (p. ej. https://target.example/nagiosxi) |
-c / --cookie | Valor de la cookie de sesión nagiosxi |
-a / --apiKey | Token de API (no usar junto con -c) |
-d / --database | Nombre del esquema/base de datos (omite la enumeración del esquema) |
-t / --table | Nombre de la tabla (omite la enumeración de tablas; requiere -d) |
-C / --columns | Columnas separadas por comas (omite la enumeración de columnas; requiere -t) |
-w / --workers | Hilos en paralelo (valor predeterminado: 10) |
--delay | Segundos de SLEEP en la rama verdadera (valor predeterminado: 1.5) |
--threshold | Tiempo de respuesta mínimo para considerar un acierto (valor predeterminado: delay * 0.8) |
--max-length | Límite superior para la búsqueda binaria de longitud (valor predeterminado: 2048) |