Browser HTTP Request Smuggling
Reading time: 3 minutes
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.
Browser-powered desync (auch bekannt als client-seitiges Request Smuggling) missbraucht den Browser des Opfers, um eine fehlerhaft formatierte Anfrage in eine gemeinsame Verbindung einzureihen, sodass nachfolgende Anfragen von einer nachgelagerten Komponente asynchron analysiert werden. Im Gegensatz zum klassischen FE↔BE Smuggling sind die Payloads durch das, was ein Browser legal cross-origin senden kann, eingeschränkt.
Wichtige Einschränkungen und Tipps
- Verwenden Sie nur Header und Syntax, die ein Browser über Navigation, Fetch oder Formularübermittlung senden kann. Header-Verschleierungen (LWS-Tricks, doppelte TE, ungültige CL) werden in der Regel nicht gesendet.
- Zielen Sie auf Endpunkte und Zwischenstationen, die Eingaben widerspiegeln oder Antworten zwischenspeichern. Nützliche Auswirkungen sind Cache-Poisoning, das Leaken von front-end-injizierten Headern oder das Umgehen von front-end-Pfad-/Methoden-Kontrollen.
- Wiederverwendung ist wichtig: Richten Sie die gestaltete Anfrage so aus, dass sie die gleiche HTTP/1.1- oder H2-Verbindung wie eine hochpriorisierte Opferanfrage teilt. Verbindungsgebundene/zustandsbehaftete Verhaltensweisen verstärken die Auswirkungen.
- Bevorzugen Sie Primitive, die keine benutzerdefinierten Header erfordern: Pfadverwirrung, Query-String-Injektion und Body-Formung über form-encoded POSTs.
- Validieren Sie echte serverseitige Desynchronisation vs. bloße Pipeline-Artefakte, indem Sie ohne Wiederverwendung erneut testen oder den HTTP/2-Nested-Response-Check verwenden.
Für End-to-End-Techniken und PoCs siehe:
- PortSwigger Research – Browser‑Powered Desync Attacks: https://portswigger.net/research/browser-powered-desync-attacks
- PortSwigger Academy – client‑side desync: https://portswigger.net/web-security/request-smuggling/browser/client-side-desync
References
- https://portswigger.net/research/browser-powered-desync-attacks
- https://portswigger.net/web-security/request-smuggling/browser/client-side-desync
- Unterscheidung zwischen Pipelining und Smuggling (Hintergrund zu Wiederverwendungs-Falsch-Positiven): https://portswigger.net/research/how-to-distinguish-http-pipelining-from-request-smuggling
tip
Lernen & üben Sie AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Lernen & üben Sie GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Lernen & üben Sie Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Unterstützen Sie HackTricks
- Überprüfen Sie die Abonnementpläne!
- Treten Sie der 💬 Discord-Gruppe oder der Telegram-Gruppe bei oder folgen Sie uns auf Twitter 🐦 @hacktricks_live.
- Teilen Sie Hacking-Tricks, indem Sie PRs an die HackTricks und HackTricks Cloud GitHub-Repos senden.