
Un simple PoC sur la vulnérabilité d'exécution de code à distance (RCE) de CraftCMS désignée CVE-2025-32432, écrit en Go.
Ce dépôt contient une preuve de concept (PoC) professionnelle écrite en Go, conçue pour démontrer une chaîne de vulnérabilités critique dans Craft CMS. L'exploit s'appuie sur une vulnérabilité d'empoisonnement des journaux (log poisoning) qui conduit à une inclusion locale de fichier (LFI), aboutissant in fine à une exécution de code à distance (RCE) via un reverse shell.
L'exploit suit une chaîne d'exécution en plusieurs étapes :
L'outil commence par envoyer une requête GET non authentifiée à la cible. En manipulant le paramètre a et en fournissant un CraftSessionId personnalisé via les cookies, l'attaquant peut forcer l'application à écrire une charge utile PHP dans le fichier journal de session situé à /var/lib/php/sessions/sess_[sessionId].
Pour interagir avec le point de terminaison generate-transform, l'outil extrait automatiquement les cookies X-CSRF-Token et CRAFT_CSRF_TOKEN nécessaires depuis l'interface d'administration, ce qui garantit que la requête POST suivante est acceptée par le serveur.
L'outil exploite le point de terminaison generate-transform en envoyant une charge utile JSON spécialement conçue. En abusant de la classe \yii\rbac\PhpManager via une injection de comportement, l'outil déclenche une inclusion locale de fichier (LFI) du journal de session préalablement empoisonné. Une fois le code PHP du journal exécuté, l'outil invoque un reverse shell basé sur Python.
Contrairement aux scripts traditionnels, cet outil implémente un écouteur TCP concurrent à l'aide de goroutines Go. Cela permet à l'outil de capturer automatiquement la connexion du reverse shell sur un port spécifié, offrant une expérience fluide « en un clic », de l'envoi de l'exploit jusqu'à l'accès au shell.
go run main.go
Suivez les instructions à l'écran pour fournir l'URL cible, votre port d'écoute et votre adresse IP.
Cet outil est destiné uniquement à des fins éducatives et de tests autorisés.