Našli novú verziu útoku HTTP Request Smuggling

undefined webové systémy, kde frontend akceptuje pripojenia prostredníctvom HTTP / 2 a odovzdá ich do backendu cez HTTP / 1.1 hboli vystavení novej verzii útoku „pašovanie žiadostí HTTP“, Umožňuje odosielaním špeciálne navrhnutých požiadaviek klientov rozdeliť obsah požiadaviek ostatných používateľov spracovaných v rovnakom toku medzi frontend a backend.

Útok možno použiť na vloženie škodlivého kódu JavaScript v relácii s legitímnym serverom obíďte systémy obmedzujúce prístup a zachytávajte autentifikačné parametre.

Autor štúdie predviedol možnosť útoku na systémy Netflix, Verizon, Bitbucket, Netlify CDN a Atlassian, a získal 56.000 5 dolárov v odmeňovacích programoch za identifikáciu zraniteľností. Problém bol potvrdený aj v produktoch FXNUMX Networks.

Problém čiastočne ovplyvňuje mod_proxy na serveri Apache http (CVE-2021-33193), opravy očakávané vo verzii 2.4.49 (vývojári boli na problém upozornení začiatkom mája a dostali 3 mesiace na ich vyriešenie). V nginxe bola v predchádzajúcej verzii (1.21.1) blokovaná schopnosť súčasne špecifikovať hlavičky „Content-Length“ a „Transfer-Encoding“.

Princíp činnosti novej metódy požiadaviek na zhodu v premávke je podobná zraniteľnosti, ktorú ten istý výskumník zistil pred dvoma rokmi, ale je obmedzený na rozhrania, ktoré prijímajú požiadavky cez HTTP / 1.1.

Klasický útok „Pašovanie žiadostí HTTP“ bol založený na skutočnosti, že frontendy a backendy interpretujú používanie hlavičiek HTTP „Content-Length“ odlišne (určuje celkovú veľkosť údajov v požiadavke) a „Transfer-Encoding: chunked“ (umožňuje prenášate údaje po častiach) ...

Ak napríklad rozhranie podporuje iba „Content-Length“, ale ignoruje „Transfer-Encoding: Fragmented“, útočník môže odoslať požiadavku, ktorá obsahuje hlavičky „Content-Length“ a „Transfer-Encoding: Fragmented“, ale veľkosť sk „Dĺžka obsahu“ sa nezhoduje s veľkosťou kusého reťazca. V takom prípade frontend spracuje a presmeruje požiadavku podľa „dĺžky obsahu“ a backend bude čakať na dokončenie bloku na základe „kódovania prenosu: chunked“.

Na rozdiel od textového protokolu HTTP / 1.1, ktorý je analyzovaný na úrovni riadkov, HTTP / 2 je binárny protokol a manipuluje s blokmi údaje vopred určenej veľkosti. Avšak HTTP / 2 používajte pseudohlavičky ktoré zodpovedajú normálnym hlavičkám HTTP. Pri interakcii s backendom pomocou protokolu HTTP / 1.1, frontend prekladá tieto pseudohlavičky v podobných HTTP / 1.1 hlavičkách HTTP. Problém je v tom, že backend rozhoduje o analýze prenosu na základe hlavičiek HTTP nastavených frontendom, bez znalosti parametrov pôvodnej požiadavky.

Aj vo forme pseudohlavíc, hodnôt „Dĺžka obsahu“ a „kódovanie prenosu“ dajú sa streamovať, aj keď sa nepoužívajú v HTTP / 2, pretože veľkosť všetkých údajov je určená v samostatnom poli. Pri konverzii požiadavky HTTP / 2 na HTTP / 1.1 však tieto hlavičky prechádzajú a môžu byť pre backend mätúce.

Existujú dve hlavné možnosti útoku: H2.TE a H2.CL, v ktorom je backend oklamaný nesprávnym kódovaním prenosu alebo hodnotou dĺžky obsahu, ktorá nezodpovedá skutočnej veľkosti tela požiadavky prijatého frontendom prostredníctvom protokolu HTTP / 2.

Ako príklad útoku H2.CL je v pseudohlavičke zadaná nesprávna veľkosť dĺžka obsahu pri odosielaní žiadosti HTTP / 2 na Netflix. Táto požiadavka vedie k pridaniu hlavičky Dĺžka obsahu HTTP podobné pri prístupe k backendu cez HTTP / 1.1, ale od veľkosti v Dĺžka obsahu je menší ako skutočný, časť údajov vo fronte sa spracuje ako začiatok ďalšej požiadavky.

Attack Tools už boli pridané do Burp's Toolkit a sú k dispozícii ako rozšírenie Turbo Intruder. Na problém sú náchylné webové servery proxy, nástroje na vyrovnávanie zaťaženia, webové akcelerátory, systémy na doručovanie obsahu a ďalšie konfigurácie, v ktorých sú požiadavky presmerované v schéme frontend-backend.

Fuente: https://portswigger.net


Zanechajte svoj komentár

Vaša e-mailová adresa nebude zverejnená. Povinné položky sú označené *

*

*

  1. Zodpovedný za údaje: Miguel Ángel Gatón
  2. Účel údajov: Kontrolný SPAM, správa komentárov.
  3. Legitimácia: Váš súhlas
  4. Oznamovanie údajov: Údaje nebudú poskytnuté tretím stranám, iba ak to vyplýva zo zákona.
  5. Ukladanie dát: Databáza hostená spoločnosťou Occentus Networks (EU)
  6. Práva: Svoje údaje môžete kedykoľvek obmedziť, obnoviť a vymazať.