Odkrili so novo različico napada tihotapljenja zahtev po HTTP

P spletnih sistemov, kjer zunanja stran sprejema povezave prek HTTP / 2 in jih posreduje v zaledje prek HTTP / 1.1 hso bili izpostavljeni novi različici napada "Tihotapljenje zahtev po HTTP", Omogoča, da se s pošiljanjem posebej oblikovanih zahtev strank vsebina zahtev drugih uporabnikov, obdelanih v istem toku, razdeli med vmesnik in zaledje.

Napad lahko uporabite za vbrizgavanje zlonamerne kode JavaScript v seji z zakonitim spletnim mestom zaobidete sisteme omejevanja dostopa in prestrežete parametre preverjanja pristnosti.

Avtor študije pokazala možnost napada na sisteme Netflix, Verizon, Bitbucket, Netlify CDN in Atlassianin prejel 56.000 USD nagradnih programov za ugotavljanje ranljivosti. Težavo so potrdili tudi v izdelkih F5 Networks.

Problem delno vpliva na mod_proxy na strežniku Apache http (CVE-2021-33193), popravki se pričakujejo v različici 2.4.49 (razvijalci so bili o težavi obveščeni v začetku maja in so dobili tri mesece za odpravo). V nginxu je bila v prejšnji različici (3) blokirana možnost istočasnega določanja naslovov "Content-Length" in "Transfer-Encoding".

Načelo delovanja nove metode ujemanja zahtev v prometu je podobna ranljivosti, ki jo je isti raziskovalec odkril pred dvema letoma, vendar je omejen na vmesnike, ki sprejemajo zahteve po HTTP / 1.1.

Klasičen napad "Tihotapljenje zahtev po HTTP" je temeljil na dejstvu, da zunanji in podporni vložki različno razlagajo uporabo naslovov "Content-Length" HTTP (določa skupno velikost podatkov v zahtevi) in "Transfer-Encoding: chunked" ( omogoča prenos podatkov v kosih) ...

Na primer, če vmesnik podpira samo »Content-Length«, ne upošteva pa »Transfer-Encoding: fragmented«, lahko napadalec pošlje zahtevo, ki vsebuje glave »Content-Length« in »Transfer-Encoding: fragmented«, vendar velikost jw.org sl "Dolžina vsebine" se ne ujema z velikostjo niza v kosih. V tem primeru bo frontend obdelal in preusmeril zahtevo v skladu z "Dolžino vsebine", zaledje pa bo počakalo, da se blok dokonča, na podlagi "Transfer encoding: chunked".

Za razliko od besedilnega protokola HTTP / 1.1, ki je razčlenjen na ravni vrstice, HTTP / 2 je binarni protokol in upravlja bloke podatki vnaprej določene velikosti. Vendar pa HTTP / 2 uporabite psevdo-glave ki ustrezajo običajnim glavam HTTP. Pri interakciji z zaledjem z uporabo protokola HTTP / 1.1, frontend prevede te psevdoglavje v podobnih glavah HTTP / 1.1 HTTP. Težava je v tem, da zalednik sprejema odločitve o analizi prenosa na podlagi naslovov HTTP, ki jih določi prednja stran, brez poznavanja parametrov prvotne zahteve.

Tudi v obliki psevdoglavov, vrednosti "Content-length" in "transfer-encoding" jih je mogoče pretakati, čeprav se ne uporabljajo v protokolu HTTP / 2, saj je velikost vseh podatkov določena v ločenem polju. Ko pa pretvorite zahtevo HTTP / 2 v HTTP / 1.1, te glave preidejo in so lahko v zaledju zmede.

Obstajata dve glavni možnosti napada: H2.TE in H2.CL, pri katerem je zaledje zavedeno zaradi napačnega kodiranja prenosa ali vrednosti dolžine vsebine, ki ne ustreza dejanski velikosti telesa zahteve, ki ga je sprejemnik prejel s protokolom HTTP / 2.

Kot primer napada H2.CL je v psevdoglavju podana napačna velikost dolžino vsebine pri oddaji zahteve HTTP / 2 na Netflix. Ta zahteva vodi k dodajanju glave Dolžina vsebine HTTP podobno pri dostopu do zaledja prek HTTP / 1.1, vendar ker je velikost v Dolžina vsebine je manjši od dejanskega, del podatkov v čakalni vrsti se obdela kot začetek naslednje zahteve.

Orodja za napad so že dodana v Burp's Toolkit in so na voljo kot razširitev Turbo Intruder. Spletni pooblaščenci, izravnalniki obremenitve, spletni pospeševalniki, sistemi za dostavo vsebine in druge konfiguracije, pri katerih so zahteve preusmerjene v shemi prednjega vmesnika, so dovzetne za težavo.

vir: https://portswigger.net


Pustite svoj komentar

Vaš e-naslov ne bo objavljen. Obvezna polja so označena z *

*

*

  1. Za podatke odgovoren: Miguel Ángel Gatón
  2. Namen podatkov: Nadzor neželene pošte, upravljanje komentarjev.
  3. Legitimacija: Vaše soglasje
  4. Sporočanje podatkov: Podatki se ne bodo posredovali tretjim osebam, razen po zakonski obveznosti.
  5. Shranjevanje podatkov: Zbirka podatkov, ki jo gosti Occentus Networks (EU)
  6. Pravice: Kadar koli lahko omejite, obnovite in izbrišete svoje podatke.