hacktricks/src/pentesting-web/http-request-smuggling/browser-http-request-smuggling.md

24 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Browser HTTP Request Smuggling
{{#include ../../banners/hacktricks-training.md}}
Browser-powered desync (aka client-side request smuggling) wykorzystuje przeglądarkę ofiary do dodania źle sformatowanego żądania do wspólnego połączenia, tak aby kolejne żądania były analizowane w sposób niesynchronizowany przez komponent downstream. W przeciwieństwie do klasycznego smugglingu FE↔BE, ładunki są ograniczone przez to, co przeglądarka może legalnie wysłać między różnymi źródłami.
Kluczowe ograniczenia i wskazówki
- Używaj tylko nagłówków i składni, które przeglądarka może wysłać za pomocą nawigacji, fetch lub przesyłania formularzy. Obfuskacje nagłówków (triki LWS, duplikaty TE, nieprawidłowy CL) zazwyczaj nie będą wysyłane.
- Celuj w punkty końcowe i pośredników, którzy odzwierciedlają dane wejściowe lub buforują odpowiedzi. Przydatne skutki obejmują zanieczyszczenie pamięci podręcznej, wyciek nagłówków wstrzykiwanych przez front-end lub obejście kontroli ścieżki/metody front-end.
- Powtórne użycie ma znaczenie: dostosuj skonstruowane żądanie, aby dzieliło to samo połączenie HTTP/1.1 lub H2 z żądaniem ofiary o wysokiej wartości. Zachowania zablokowane na połączeniu/stanu wzmacniają wpływ.
- Preferuj prymitywy, które nie wymagają niestandardowych nagłówków: mylenie ścieżek, wstrzykiwanie ciągu zapytania i kształtowanie ciała za pomocą POST-ów zakodowanych w formularzu.
- Waliduj prawdziwe desynchronizacje po stronie serwera w porównaniu do jedynie artefaktów pipeliningu, ponownie testując bez ponownego użycia lub używając sprawdzenia zagnieżdżonej odpowiedzi HTTP/2.
Dla technik end-to-end i PoC zobacz:
- PortSwigger Research BrowserPowered Desync Attacks: https://portswigger.net/research/browser-powered-desync-attacks
- PortSwigger Academy clientside desync: https://portswigger.net/web-security/request-smuggling/browser/client-side-desync
## References
- [https://portswigger.net/research/browser-powered-desync-attacks](https://portswigger.net/research/browser-powered-desync-attacks)
- [https://portswigger.net/web-security/request-smuggling/browser/client-side-desync](https://portswigger.net/web-security/request-smuggling/browser/client-side-desync)
- Distinguishing pipelining vs smuggling (background on reuse false-positives): https://portswigger.net/research/how-to-distinguish-http-pipelining-from-request-smuggling
{{#include ../../banners/hacktricks-training.md}}