
Exploit de preuve de concept pour CVE-2022-1329, une vulnérabilité d'exécution de code à distance dans WordPress Elementor 3.6.0-3.6.2. Inclut un environnement vulnérable basé sur Docker et une injection de charge utile PHP personnalisable.
Ce PoC est basé sur celui de AkuCyberSec.
Utilisez docker-compose pour démarrer l'environnement vulnérable :
docker-compose up -d
Ensuite, vous pouvez accéder à la page d'administration de WordPress avec l'URL http://localhost:8000.
Enregistrez l'utilisateur administrateur, puis ajoutez un utilisateur non-admin dans l'onglet Utilisateurs. Par exemple, il y a deux utilisateurs :
| Nom d'utilisateur | Mot de passe | Rôle |
|---|
| wc | 123456 | Admin |
| a2 | aaaaaa | Rédacteur |
Connectez-vous avec le compte administrateur et installez Elementor 3.6.1 avec le zip fourni.
Si vous rencontrez un problème de taille de téléchargement, ajoutez php.ini dans /var/www/html/ comme suit et redémarrez le serveur docker :
upload_max_filesize = 64M
max_execution_time = 0
post_max_size = 150M
file_uploads = on
Modifiez le script PoC avec les informations de votre utilisateur non-admin et exécutez le script PoC pour exploiter :
python3 poc.py
NOTE : le script peut échouer avec un problème de téléchargement, mais c'est NORMAL, essayez de rafraîchir la page d'administration dans le navigateur pour voir si cela fonctionne.
Le PoC exécute actuellement phpinfo(); comme payload, vous pouvez bien sûr le modifier, mais vous devez supprimer manuellement le plugin elementor-pro dans le conteneur docker à l'emplacement /var/www/html/wp-content/plugin/elementor-pro :
# Décompressez le fichier zip
unzip elementor-pro.zip
# Modifiez le fichier principal pour y mettre votre payload, il se trouve au début du fichier
nano elementor-pro/elementor-pro.php
# Et compressez
rm elementor-pro.zip; zip -ry elementor-pro.zip elementor-pro
# Exploitez à nouveau
python3 poc.py
