
Scanner Python pour CVE-2025-49132 qui exploite un path traversal dans le point de terminaison locale de Pterodactyl Panel afin d'extraire les données de configuration de base de données exposées.
Cet outil est utilisé pour scanner les instances du panel Pterodactyl, en tentant d'obtenir les informations de configuration de leur base de données. En exploitant une vulnérabilité spécifique de traversée de répertoire, il est possible d'obtenir les données de configuration sensibles du panel.
Ce projet est un outil de requêtes HTTP hautes performances, spécialement conçu pour détecter et collecter les informations de configuration des instances du panel Pterodactyl exposées sur l'Internet public. Il envoie des requêtes spécifiques au serveur cible, vérifie si la réponse contient des informations de configuration de base de données, et enregistre les résultats par catégorie.
requests pour les requêtes HTTPaiohttp pour la prise en charge des requêtes asynchronesThreadPoolExecutor pour le traitement multithread.
├── main.py # 主程序文件
├── url.txt # 目标主机列表文件
├── json/ # 输出目录
│ ├── ✔️正确/ # 包含目标数据的结果保存目录
│ └── ❌错误/ # 错误或无效结果保存目录
└── README.md # 项目说明文档
Avant d'exécuter le programme, il est nécessaire d'installer les bibliothèques Python requises :
pip install requests aiohttp urllib3
python main.py
Par défaut, il lit la liste des hôtes dans le fichier url.txt et utilise le mode multithread pour le traitement.
python main.py [--file FILE] [--mode MODE] [--workers WORKERS]
Explication des paramètres :
-f, --file : spécifie le chemin du fichier de liste d'hôtes (par défaut : url.txt)-m, --mode : mode d'exécution, valeurs possibles : threading (multithread), async (asynchrone), single (monothread) (par défaut : threading)-w, --workers : nombre de threads de travail (par défaut : 5)# 使用默认设置
python main.py
# 指定自定义主机文件
python main.py --file hosts.txt
# 使用异步模式处理
python main.py --mode async
# 使用单线程模式
python main.py --mode single
# 设置工作线程数为10
python main.py --workers 10
Les configurations suivantes peuvent être modifiées dans la classe Config du fichier main.py :
PROXY : adresse du serveur proxy (par défaut : http://127.0.0.1:7899)TIMEOUT : délai d'expiration des requêtes (par défaut : 30 secondes)MAX_RETRIES : nombre maximal de tentatives (par défaut : 3)MAX_WORKERS : nombre maximal de threads de travail (par défaut : 5)USER_AGENT : User-Agent des requêtes (par défaut : Mozilla/5.0 Windows AppleWebKit/537.36)/locales/locale.jsonlocale : ../../../pterodactylnamespace : config/databasejson/✔️正确/json/❌错误/Les résultats sont enregistrés au format JSON et contiennent les informations suivantes :
success : indique si la requête a réussistatus_code : code de statut HTTPresponse_time : temps de réponseurl : URL réellement demandéeheaders : informations d'en-tête de réponsedata : données de réponsesize : taille de la réponsecontains_target_data : indique si les données cibles sont présentesdatabase_info : informations de base de données extraitesUne fois l'exécution terminée, le programme affiche des statistiques détaillées :