
Un PoC sencillo sobre la vulnerabilidad de ejecución remota de código (RCE) de CraftCMS designada como CVE-2025-32432, escrito en Go.
Este repositorio contiene un exploit de prueba de concepto (PoC) profesional escrito en Go, diseñado para demostrar una cadena de vulnerabilidades crítica en Craft CMS. El exploit aprovecha una vulnerabilidad de envenenamiento de registros que conduce a la inclusión local de archivos (LFI), logrando finalmente la ejecución remota de código (RCE) mediante una reverse shell.
El exploit sigue una cadena de ejecución de múltiples etapas:
La herramienta comienza enviando una solicitud GET no autenticada al objetivo. Al manipular el parámetro a y proporcionar un CraftSessionId personalizado mediante cookies, el atacante puede forzar a la aplicación a escribir una carga útil PHP en el archivo de registro de sesión ubicado en /var/lib/php/sessions/sess_[sessionId].
Para interactuar con el endpoint generate-transform, la herramienta extrae automáticamente las cookies necesarias X-CSRF-Token y CRAFT_CSRF_TOKEN de la interfaz administrativa, asegurando que la solicitud POST posterior sea aceptada por el servidor.
La herramienta explota el endpoint generate-transform enviando una carga útil JSON especialmente diseñada. Al abusar de la clase \yii\rbac\PhpManager mediante una inyección de comportamiento, la herramienta desencadena una inclusión local de archivos (LFI) del registro de sesión previamente envenenado. Una vez que el código PHP del registro se ejecuta, la herramienta invoca una reverse shell basada en Python.
A diferencia de los scripts tradicionales, esta herramienta implementa un listener TCP concurrente mediante Go routines. Esto permite que la herramienta capture automáticamente la conexión de la reverse shell en un puerto especificado, ofreciendo una experiencia fluida de "un clic" desde la entrega del exploit hasta el acceso a la shell.
go run main.go
Siga las indicaciones en pantalla para proporcionar la URL del objetivo, su puerto de listener y su dirección IP.
Esta herramienta es solo para fines educativos y de pruebas autorizadas.