
Laboratório baseado em Docker para reproduzir o CVE-2021-41773 (Apache HTTP Server 2.4.49) por meio de path traversal controlado e divulgação de arquivos usando um PoC Python personalizado.
Reprodução do CVE-2021-41773, uma vulnerabilidade de path traversal no Apache HTTP Server 2.4.49.
Este projeto utiliza Docker para criar um ambiente vulnerável isolado e um PoC em Python para demonstrar a divulgação controlada de arquivos.
Segurança: O PoC aceita apenas alvos
localhost,127.0.0.1ou::1. Os testes devem permanecer dentro do laboratório isolado.
Este projeto demonstra:
A demonstração tem foco na divulgação de arquivos, e não na execução remota de código.
CVE-2021-41773-Apache-Lab/
│
├── docker/
│ ├── Dockerfile
│ ├── httpd-vulnerable.conf
│ └── secret.txt
│
├── exploit/
│ └── exploit.py
│
├── screenshots/
│ ├── 01-docker-container.png
│ ├── 02-apache-version.png
│ └── 03-successful-exploit.png
│
├── report/
│ └── CVE-2021-41773-Exploit-Report.pdf
│
├── requirements.txt
├── .gitignore
└── README.md
O PoC utiliza apenas a biblioteca padrão do Python e não requer pacotes Python de terceiros.
A partir da raiz do repositório:
docker build -t cve-2021-41773-lab ./docker
docker run --rm --name cve-2021-41773-lab \
-p 127.0.0.1:8080:80 \
cve-2021-41773-lab
Mantenha este terminal em execução.
O serviço Apache é exposto somente por meio de:
127.0.0.1:8080
Em outro terminal:
docker ps
O contêiner deve exibir:
127.0.0.1:8080->80/tcp
docker exec cve-2021-41773-lab httpd -v
Resultado esperado:
Server version: Apache/2.4.49 (Unix)
curl http://127.0.0.1:8080/
A página de teste do Apache deve ser retornada.
O PoC está localizado em:
exploit/exploit.py
Execute:
python3 exploit/exploit.py
O alvo padrão é:
http://127.0.0.1:8080
O arquivo de prova padrão é:
/lab/secret.txt
Uma execução bem-sucedida produz:
[+] Vulnerability reproduced.
[+] Controlled file disclosure confirmed.
O PoC então exibe o conteúdo do arquivo controlado do laboratório.
O PoC primeiro verifica se o alvo é um endereço local:
localhost
127.0.0.1
::1
Em seguida, ele constrói um caminho contendo componentes de traversal codificados:
/cgi-bin/.%2e/.%2e/.%2e/.%2e/lab/secret.txt
A solicitação é enviada usando o módulo socket padrão do Python. Isso dá ao PoC controle direto sobre o caminho da solicitação HTTP.
O servidor Apache 2.4.49 vulnerável processa o caminho criado e retorna o conteúdo de:
/lab/secret.txt
A recuperação desse arquivo confirma o path traversal e a divulgação controlada de arquivos.
CVE: CVE-2021-41773
Produto: Apache HTTP Server
Versão Afetada Demonstrada: 2.4.49
Tipo de Vulnerabilidade: Path Traversal / Divulgação de Arquivos
O CVE-2021-41773 é uma vulnerabilidade de path traversal no Apache HTTP Server 2.4.49. Uma URL especialmente criada pode contornar as restrições de caminho pretendidas e permitir acesso a arquivos fora do diretório esperado.
Sob determinadas configurações, a vulnerabilidade pode ter consequências mais graves. Este projeto demonstra deliberadamente a divulgação controlada de arquivos em um ambiente Docker isolado.
As capturas de tela coletadas durante os testes são armazenadas em:
evidence/
As evidências incluem:
A mitigação principal é atualizar o Apache HTTP Server para uma versão corrigida.
Medidas defensivas adicionais incluem:
Comunicado de Segurança do Apache HTTP Server: https://httpd.apache.org/security/vulnerabilities_24.html
Banco de Dados Nacional de Vulnerabilidades do NIST: https://nvd.nist.gov/vuln/detail/CVE-2021-41773
Comunicado de Segurança do CERT-EU: https://cert.europa.eu/publications/security-advisories/2021-054/
Este projeto tem a finalidade exclusiva de educação autorizada em segurança e testes controlados em laboratório.
O ambiente Docker e o PoC são projetados para testes locais. Não use o PoC contra sistemas que você não possua ou para os quais não tenha permissão explícita de avaliação.