
A Python-based security scanner for identifying the CVE-2025-31324 vulnerability in SAP Visual Composer systems, and detecting known Indicators of Compromise (IOCs) such as malicious .jsp.
Un scanner de sécurité basé sur Python pour identifier la vulnérabilité CVE-2025-31324 dans les systèmes SAP Visual Composer, et détecter les indicateurs de compromission (IOC) connus tels que les .jsp malveillants.
.jsp malveillants connus (webshells)requests (installée via requirements.txt)# 1. Cloner le dépôt
git clone https://github.com/youruser/CVE-2025-31324.git
cd CVE-2025-31324
# 2. Créer et activer un environnement virtuel
python3 -m venv venv
source venv/bin/activate # Sur Windows : venv\Scripts\activate
# 3. Installer les dépendances
pip install -r requirements.txt
scan.py # Scanner principal
targets.csv # Liste d'entrée des cibles
ioc_list.txt # Liste de signatures IOC optionnelle
results.csv # Rapport de sortie (si --output utilisé)
requirements.txt # Dépendances Python
Créez un fichier nommé targets.csv avec le format suivant séparé par des points-virgules, contenant IP, Port et option SSL :
192.168.1.10;50000;false
myunsafelocation.example.com;443;true
10.0.0.5;8080;false
true, false, yes ou noCréez un fichier nommé ioc_list.txt :
# IOC par défaut
cache.jsp
helper.jsp
nzwcnktc.jsp
# Ajoutez vos propres signatures
shell.jsp
webadmin.jsp
python3 scan.py --input targets.csv
| Option | Description |
|---|---|
--iocfile | Chemin vers une liste IOC personnalisée () |
python3 scan.py --input targets.csv --iocfile ioc_list.txt --output results.csv --verbose
Le script affiche un bloc de résultats pour chaque hôte :
__________________________________
✅ Cible 1 : 192.168.1.10:50000
Connexion : En ligne
Statut : Non vulnérable
IOC : Aucun détecté
__________________________________
| Icône | Signification |
|---|---|
| ✅ | Sûr (Non vulnérable, aucun IOC) |
| ❗ | Vulnérable, mais aucun IOC trouvé |
| 💥 | Vulnérable + IOC(s) détecté(s) |
| ❌ | Hôte inaccessible / échec de connexion |
Pour tester localement, lancez un serveur HTTP Python simulant un système SAP vulnérable :
mkdir -p test/developmentserver
mkdir -p test/irj
echo "" > test/developmentserver/metadatauploader
echo "<%-- fake webshell --%>" > test/irj/cache.jsp
cd test
python3 -m http.server 8000
Ajoutez à targets.csv :
0.0.0.0;8000;false
Cet outil est fourni uniquement pour des tests de sécurité et des recherches autorisées. Ne l'utilisez pas contre des systèmes dont vous n'êtes pas propriétaire ou pour lesquels vous n'avez pas d'autorisation explicite de scanner.
Pour des suggestions ou des améliorations, veuillez ouvrir une issue ou soumettre une PR.
Ce projet est sous licence MIT License.
Vous êtes libre de l'utiliser, de le modifier et de le distribuer — à des fins commerciales ou privées.
Avertissement :
Cet outil est fourni en l'état, sans aucune garantie expresse ou implicite.
Les auteurs ne sont pas responsables des dommages ou problèmes juridiques causés par son utilisation.
Utilisez-le uniquement dans des environnements où vous avez l'autorisation explicite de scanner et tester des systèmes.
.txt--output ou -o | Sauvegarder les résultats au format CSV |
--verbose ou -v | Activer la sortie de débogage détaillée |