
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: