Našli novou verzi útoku HTTP Request Smuggling

L webové systémy, kde frontend přijímá připojení přes HTTP / 2 a předává je do backendu přes HTTP / 1.1 hbyli vystaveni nové verzi útoku „HTTP Request Smuggling“, Umožňuje odesláním speciálně navržených požadavků klientů rozdělit obsah požadavků ostatních uživatelů zpracovaných ve stejném toku mezi frontend a backend.

Útok lze použít k vložení škodlivého kódu JavaScript v relaci s legitimním webem obejděte systémy omezující přístup a zachyťte parametry autentizace.

Autor studie předvedl možnost útoku na systémy Netflix, Verizon, Bitbucket, Netlify CDN a Atlassian, a obdržel 56.000 5 $ v programech odměn za identifikaci zranitelností. Problém byl také potvrzen v produktech FXNUMX Networks.

Problém částečně ovlivňuje mod_proxy na serveru Apache http (CVE-2021-33193), opravy očekávané ve verzi 2.4.49 (vývojáři byli na problém upozorněni začátkem května a dostali 3 měsíce na jeho opravu). V nginx byla v předchozí verzi (1.21.1) blokována možnost současně specifikovat záhlaví „Content-Length“ a „Transfer-Encoding“.

Princip fungování nové metody odpovídajících požadavků v provozu je podobná zranitelnosti objevené stejným výzkumníkem před dvěma lety, ale je omezeno na rozhraní, která přijímají požadavky přes HTTP / 1.1.

Klasický útok „Pašování požadavků HTTP“ vycházel ze skutečnosti, že frontendy a backendy interpretují použití hlaviček HTTP „Content-Length“ odlišně (určuje celkovou velikost dat v požadavku) a „Transfer-Encoding: chunked“ ( umožňuje přenášet data po částech) ...

Pokud například rozhraní podporuje pouze „Content-Length“, ale ignoruje „Transfer-Encoding: fragmented“, může útočník odeslat požadavek, který obsahuje záhlaví „Content-Length“ a „Transfer-Encoding: fragmented“, ale velikost cs „Délka obsahu“ neodpovídá velikosti řetězcového bloku. V tomto případě frontend zpracuje a přesměruje požadavek podle „délky obsahu“ a backend bude čekat na dokončení bloku na základě „přenosu kódování: blokováno“.

Na rozdíl od textového protokolu HTTP / 1.1, který je analyzován na úrovni řádku, HTTP / 2 je binární protokol a manipuluje s bloky data předem stanovené velikosti. Nicméně HTTP / 2 používejte pseudohlavičky které odpovídají běžným hlavičkám HTTP. Při interakci s backendem pomocí protokolu HTTP / 1.1, frontend překládá tyto pseudohlavičky v podobných HTTP / 1.1 HTTP hlavičkách. Problém je v tom, že backend rozhoduje o analýze přenosu na základě hlaviček HTTP nastavených frontendem, bez znalosti parametrů původního požadavku.

Dokonce i ve formě pseudohlaviček, hodnot „Délka obsahu“ a „kódování přenosu“ lze je streamovat, i když se nepoužívají v HTTP / 2, protože velikost všech dat je určena v samostatném poli. Při převodu požadavku HTTP / 2 na HTTP / 1.1 však tato záhlaví procházejí a mohou být pro backend matoucí.

Existují dvě hlavní možnosti útoku: H2.TE a H2.CL, ve kterém je backend oklamán nesprávným kódováním přenosu nebo hodnotou délky obsahu, která neodpovídá skutečné velikosti těla požadavku přijatém frontendem prostřednictvím protokolu HTTP / 2.

Jako příklad útoku H2.CL je v pseudohlavičce zadána nesprávná velikost délka obsahu při odesílání požadavku HTTP / 2 na Netflix. Tento požadavek vede k přidání záhlaví Délka obsahu HTTP podobné při přístupu k backendu přes HTTP / 1.1, ale od velikosti v Obsah-délka je menší než skutečný, část dat ve frontě je zpracována jako začátek dalšího požadavku.

Attack Tools již byly přidány do Burp's Toolkit a jsou k dispozici jako rozšíření Turbo Intruder. K problému jsou náchylné webové proxy, nástroje pro vyrovnávání zatížení, webové akcelerátory, systémy pro doručování obsahu a další konfigurace, kde jsou požadavky přesměrovány ve schématu frontend-backend.

zdroj: https://portswigger.net


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.