
Go-Tool und Nuclei-Vorlage zum Testen von James Kettles (CVE-2025-32094) HTTP/1.1 muss sterben: das Desync-Endspiel
Dieses Repository enthält defensive Sicherheitstools zur Erkennung von HTTP/1-Request-Smuggling-Desync-Schwachstellen, basierend auf bahnbrechender Forschung von James Kettle (PortSwigger).
Diese Arbeit wurde direkt inspiriert von und implementiert Techniken aus:
Die Angriffsmuster, Techniken und Erkennungsmethoden, die in diesen Tools implementiert sind, basieren auf James Kettles bahnbrechender Arbeit, die grundlegende Schwachstellen in der Implementierung des HTTP/1.1-Protokolls bei großen Web-Infrastrukturanbietern aufdeckte.
James Kettles Forschung deckte Schwachstellen auf, die folgende Anbieter betrafen:
Die mehrdeutigen Anfragegrenzen von HTTP/1.1 erzeugen das, was James Kettle als „extreme Mehrdeutigkeit“ bezeichnete, wo Anfragen beginnen und enden. Dies führt zu Parser-Diskrepanzen zwischen Front-End- und Back-End-Servern und ermöglicht ausgefeilte Request-Smuggling-Angriffe. Diese Tools helfen, solche Schwachstellen für defensive Sicherheitstests zu identifizieren.
http1-desync-test.go)Ein umfassender HTTP/1-Desync-Schwachstellentester, der mehrere Angriffsmuster implementiert.
# Repository klonen
git clone https://github.com/nconsolo/echteeteepee.git
cd echteeteepee
# Abhängigkeiten installieren
go mod download
# Tool bauen
go build -o http1-desync-test http1-desync-test.go
# Alle Angriffsmuster testen
./http1-desync-test -target https://example.com
# Spezifisches Angriffsmuster testen
./http1-desync-test -target https://example.com -test vh
# Ausführliche Ausgabe aktivieren
./http1-desync-test -target https://example.com -verbose
# Benutzerdefiniertes Timeout setzen
./http1-desync-test -target https://example.com -timeout 10s
-target: Ziel-URL (erforderlich)-test: Testtyp: all, vh, 0cl, expect, double, clte (Standard: all)-timeout: Request-Timeout (Standard: 5s)-verbose: Ausführliche Ausgabe aktivieren, um rohe Anfragen/Antworten zu sehennuclei-templates/http1-desync.yaml)Automatisiertes Scan-Template für Nuclei zur Erkennung von HTTP/1-Desync-Schwachstellen im großen Maßstab.
# Nuclei installieren (falls nicht bereits geschehen)
go install -v github.com/projectdiscovery/nuclei/v3/cmd/nuclei@latest
# Template in das Nuclei-Templates-Verzeichnis kopieren
cp nuclei-templates/http1-desync.yaml ~/.nuclei-templates/
# Einzelnes Ziel scannen
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml
# Mehrere Ziele scannen
nuclei -l targets.txt -t nuclei-templates/http1-desync.yaml
# Mit Ratenbegrenzung scannen
nuclei -u https://example.com -t nuclei-templates/http1-desync.yaml -rl 10
Alle Angriffsmuster basieren auf James Kettles Forschungsergebnissen und nachgewiesenen Exploit-Techniken.
Quelle: James Kettles Forschung „HTTP/1 Must Die“
Nutzt Diskrepanzen aus, bei denen der Front-End-Proxy eine Anfragegrenze sieht, während der Back-End-Server eine andere sieht. Die Angriffsnutzlast bettet eine versteckte Anfrage in das ein, was für den Front-End-Header-Daten zu sein scheint, aber vom Back-End als separate Anfrage interpretiert wird.
Beispiel aus der Forschung: Wurde verwendet, um Parser-Unterschiede bei großen CDN-Anbietern zu demonstrieren.
Quelle: James Kettles Erkenntnisse zu Schwachstellen bei IIS und T-Mobile
Nutzt unterschiedliche Interpretationen von Content-Length: 0-Headern zwischen Servern aus. Manche Server ignorieren den Body bei CL=0, während andere ihn trotzdem verarbeiten, was zu Verwirrung bei den Anfragegrenzen führt.
Auswirkungen in der Praxis: Erfolgreich gegen IIS-Server und die Infrastruktur von T-Mobile ausgenutzt.
Quelle: James Kettles Forschung zu T-Mobile und LastPass
Nutzt den Expect: 100-continue-Mechanismus aus, bei dem Front-End und Back-End die Fortsetzung unterschiedlich handhaben. Dies schafft Möglichkeiten, Anfragen zu schmuggeln, während der Front-End auf eine 100-continue-Antwort wartet.
Forschungskontext: Gegen Authentifizierungssysteme von T-Mobile und LastPass demonstriert.
Quelle: James Kettles fortgeschrittene Desync-Methodik
Verkettet mehrere Desync-Angriffe, um die Antwortwarteschlange zu vergiften, sodass Angreifer kontrollieren können, welche Antworten andere Benutzer erhalten. Dies stellt einen der ausgefeiltesten Angriffe in der Forschung dar.
Kritisches Ergebnis: Ermöglicht die vollständige Übernahme einer Website durch die Auslieferung bösartiger Antworten an legitime Benutzer.
Quelle: Kernforschung zur HTTP/1.1-Mehrdeutigkeit von James Kettle
Nutzt Konflikte zwischen Content-Length- und Transfer-Encoding: chunked-Headern aus. Verschiedene Server priorisieren diese Header unterschiedlich, was zu Parser-Diskrepanzen führt, die Request-Smuggling ermöglichen.
Grundlage: Diese Konflikte stellen den grundlegenden Fehler dar, den James Kettle in der HTTP/1.1-Spezifikation identifizierte.
Basierend auf James Kettles Forschungsmethodik suchen die Tools nach:
In Anlehnung an James Kettles Klassifizierung der Auswirkungen:
Diese Tools sind konzipiert für:
Verwenden Sie diese Tools NICHT:
In Anlehnung an James Kettles Methodik halten die Tools persistente HTTP/1.1-Verbindungen aufrecht, um Desync-Bedingungen ordnungsgemäß zu testen. Jeder Test erstellt eine einzelne TCP-Verbindung und sendet mehrere Anfragen, um Parser-Unterschiede zu beobachten.
Angriffsnutzlasten werden sorgfältig basierend auf den genauen Mustern erstellt, die James Kettle in seiner Forschung verwendet hat, um die Kompatibilität mit dem von ihm dokumentierten Serververhalten sicherzustellen.
Die Erkennungslogik implementiert dieselben Indikatoren, die James Kettle zur Identifizierung erfolgreicher Desync-Angriffe während seiner Bug-Bounty-Forschung mit über 350.000 US-Dollar Prämie verwendete.
Basierend auf James Kettles Erkenntnissen und Empfehlungen:
MIT-Lizenz – Siehe LICENSE-Datei für Details
Diese Tools werden nur für Bildungszwecke und defensive Sicherheitszwecke bereitgestellt. Die Benutzer sind dafür verantwortlich, sicherzustellen, dass sie die entsprechende Autorisierung haben, bevor sie Systeme testen. Die Autoren übernehmen keine Haftung für Missbrauch oder Schäden, die durch diese Tools verursacht werden.