Jie rado naują HTTP užklausos kontrabandos atakos versiją

Los žiniatinklio sistemas, kuriose priekinė sąsaja priima ryšius per HTTP / 2 ir perduoda juos vidinei sistemai per HTTP / 1.1 valpatyrė naują „HTTP užklausos kontrabandos“ atakos versiją, Tai leidžia, siunčiant specialiai sukurtas klientų užklausas, padalyti kitų vartotojų užklausų, apdorotų tuo pačiu srautu, turinį tarp priekinės ir vidinės sistemos.

Ataka gali būti naudojamas švirkšti kenkėjišką „JavaScript“ kodą sesijoje su teisėta svetaine, apeiti prieigos apribojimo sistemas ir perimti autentifikavimo parametrus.

Tyrimo autorius parodė galimybę pulti „Netflix“, „Verizon“, „Bitbucket“, „Netlify CDN“ ir „Atlassian“ sistemasir gavo 56.000 5 USD atlygio programų už pažeidžiamumų nustatymą. Problema taip pat patvirtinta „FXNUMX Networks“ produktuose.

Problema iš dalies veikia mod_proxy Apache http serveryje (CVE-2021-33193), pataisymai, kurių tikimasi 2.4.49 versijoje (kūrėjai buvo informuoti apie problemą gegužės pradžioje ir davė 3 mėnesius ją išspręsti). „Nginx“ ankstesnėje versijoje (1.21.1) buvo užblokuota galimybė vienu metu nurodyti antraštes „Turinio ilgis“ ir „Perkėlimo kodavimas“.

Naujojo metodo veikimo principas atitinkančių užklausų sraute yra panašus į to paties tyrėjo prieš dvejus metus atrastą pažeidžiamumą, tačiau apsiriboja sąsajomis, kurios priima užklausas per HTTP / 1.1.

Klasikinė „HTTP užklausų kontrabandos“ ataka buvo pagrįsta tuo, kad priekinės ir vidinės sistemos skirtingai interpretuoja HTTP „turinio ilgio“ antraščių naudojimą (nustato bendrą užklausos duomenų dydį) ir „Transfer-Encoding: chunked“ ( leidžia perduoti duomenis dalimis) ...

Pvz., Jei sąsaja palaiko tik „turinio ilgį“, bet nepaiso „Transfer-Encoding: fragmented“, užpuolikas gali nusiųsti užklausą, kurioje yra antraštės „Content-Length“ ir „Transfer-Encoding: fragmented“, bet dydis jw.org lt „Turinio ilgis“ neatitinka suskaidytos eilutės dydžio. Tokiu atveju priekinė sąsaja apdoros ir peradresuos užklausą pagal „Turinio ilgį“, o užpakalinė dalis lauks, kol blokas bus baigtas, remiantis „Perkėlimo kodavimas: suskaidytas“.

Skirtingai nuo tekstinio HTTP / 1.1 protokolo, kuris analizuojamas eilutės lygiu, HTTP / 2 yra dvejetainis protokolas ir manipuliuoja blokais iš anksto nustatyto dydžio duomenys. Tačiau HTTP / 2 naudokite pseudo antraštes kurie atitinka įprastas HTTP antraštes. Sąveikaujant su užpakaline dalimi naudojant HTTP / 1.1 protokolą, sąsaja verčia šias pseudo antraštes panašiose HTTP / 1.1 HTTP antraštėse. Problema ta, kad vidinė programa priima sprendimus dėl perdavimo analizės remiantis HTTP antraštėmis, kurias nustatė priekinė dalis, nežinodamas pradinio prašymo parametrų.

Net pseudo antraščių pavidalu, vertybės „Turinio ilgis“ ir „perdavimo kodavimas“ jie gali būti transliuojami, nors jie nenaudojami HTTP / 2, nes visų duomenų dydis nustatomas atskirame lauke. Tačiau konvertuojant HTTP / 2 užklausą į HTTP / 1.1, šios antraštės praeina ir gali sukelti painiavos.

Yra dvi pagrindinės atakos galimybės: H2.TE ir H2.CL, kuriame užpakalinė dalis suklaidinama neteisingai perkėlus kodavimą arba turinio ilgio reikšmę, kuri neatitinka tikrojo užklausos turinio dydžio, kurį frontendas gavo per HTTP / 2 protokolą.

Kaip H2.CL atakos pavyzdys, pseudo antraštėje nurodytas neteisingas dydis turinio ilgis teikiant užklausą HTTP / 2 į „Netflix“. Dėl šios užklausos pridedama antraštė HTTP turinio ilgis panašus, kai prieinama prie vidinės sistemos per HTTP / 1.1, bet kadangi dydis yra Turinio ilgis yra mažesnis už faktinį, dalis eilėje esančių duomenų apdorojama kaip kitos užklausos pradžia.

Atakos įrankiai jau buvo pridėti prie „Burp“ įrankių rinkinio ir yra prieinami kaip „Turbo Intruder“ plėtinys. Interneto tarpiniai serveriai, apkrovos balansavimo įrenginiai, žiniatinklio spartintuvai, turinio pateikimo sistemos ir kitos konfigūracijos, kuriose užklausos peradresuojamos pagal priekinės ir galinės sistemos schemą, yra pažeidžiamos.

Fuente: https://portswigger.net


Palikite komentarą

Jūsų elektroninio pašto adresas nebus skelbiamas. Privalomi laukai yra pažymėti *

*

*

  1. Atsakingas už duomenis: Miguel Ángel Gatón
  2. Duomenų paskirtis: kontroliuoti šlamštą, komentarų valdymą.
  3. Įteisinimas: jūsų sutikimas
  4. Duomenų perdavimas: Duomenys nebus perduoti trečiosioms šalims, išskyrus teisinius įsipareigojimus.
  5. Duomenų saugojimas: „Occentus Networks“ (ES) talpinama duomenų bazė
  6. Teisės: bet kuriuo metu galite apriboti, atkurti ir ištrinti savo informaciją.