
Exploit de prova de conceito para Apache HTTP Server 2.4.49 path traversal (CVE-2021-41773) permitindo leitura de arquivos e execução remota de código via CGI.
No dia 5 de outubro de 2021, foi divulgado um CVE detalhando um ataque de path traversal no Apache HTTP Server v2.4.49. Atribuído o número CVE-2021-41773, foi lançado com a seguinte descrição:
Foi encontrada uma falha numa alteração feita na normalização de caminhos no Apache HTTP Server 2.4.49. Um atacante poderia usar um ataque de path traversal para mapear URLs para ficheiros fora da raiz de documentos esperada. Se os ficheiros fora da raiz de documentos não estiverem protegidos por "require all denied", esses pedidos podem ser bem-sucedidos. Além disso, esta falha poderia vazar a origem de ficheiros interpretados, como scripts CGI. Sabe-se que este problema está a ser explorado na natureza. Este problema afeta apenas o Apache 2.4.49 e não versões anteriores.
[+] Apache 2.4.49 sem CGI ativado, só podemos ler ficheiros. Simplesmente acedemos aos ficheiros que queremos, codificando na URL um dos . em cada segmento de caminho.
[+] Apache 2.4.49 com CGI ativado O CGI complicará a questão, pois o módulo tentará executar o ficheiro recuperado. Para texto simples, como /etc/passwd, isto pode ser problemático :). Para executar ou codificar, podemos simplesmente chamar sh ou bash com o comando no corpo. Note que o cabeçalho de resposta Content-Type também terá de ser emitido para que o cliente saiba como apresentar os resultados.
[+] Apache 2.4.50 Este exemplo em particular foi corrigido na versão 2.4.50. No entanto, a correção foi incompleta e não considerou uma dupla codificação da URL.