Pronašli su novu verziju napada na krijumčarenje HTTP zahtjeva

The web sustavi gdje sučelje prihvaća veze putem HTTP / 2 i prosljeđuje ih pozadini putem HTTP -a / 1.1 hbili izloženi novoj verziji napada "HTTP krijumčarenje zahtjeva", Omogućuje slanjem posebno osmišljenih zahtjeva klijenata za podjelu sadržaja zahtjeva drugih korisnika obrađenih u istom toku između sučelja i pozadine.

Napad može se koristiti za ubrizgavanje zlonamjernog JavaScript koda u sesiji s legitimnim web -mjestom zaobići sustave ograničenja pristupa i presresti parametre provjere autentičnosti.

Autor studije pokazao mogućnost napada na Netflix, Verizon, Bitbucket, Netlify CDN i Atlassian sustave, te su primili 56.000 USD u programe nagrađivanja za identificiranje ranjivosti. Problem je također potvrđen u proizvodima F5 Networks.

problem djelomično utječe na mod_proxy na Apache http poslužitelju (CVE-2021-33193), popravci se očekuju u verziji 2.4.49 (programeri su obaviješteni o problemu početkom svibnja i dobili su 3 mjeseca da ga riješe). U nginxu je mogućnost istovremenog navođenja zaglavlja "Content-Length" i "Transfer-Encoding" blokirana u prethodnoj verziji (1.21.1).

Načelo djelovanja nove metode odgovarajućih zahtjeva u prometu slična je ranjivosti koju je isti istraživač otkrio prije dvije godine, ali je ograničeno na sučelja koja prihvaćaju zahtjeve putem HTTP / 1.1.

Klasični napad "Krijumčarenje HTTP zahtjeva" temeljio se na činjenici da sučelja i pozadine različito tumače korištenje HTTP zaglavlja "Duljina sadržaja" (određuje ukupnu veličinu podataka u zahtjevu) i "Prijenos-kodiranje: u komadima" ( omogućuje prijenos podataka u komadima) ...

Na primjer, ako sučelje podržava samo "Content-Length", ali zanemaruje "Transfer-Encoding: fragmented", napadač može poslati zahtjev koji sadrži zaglavlja "Content-Length" i "Transfer-Encoding: fragmented", ali veličine hr "Duljina sadržaja" ne podudara se s veličinom ulomljenog niza. U tom slučaju, sučelje će obraditi i preusmjeriti zahtjev prema "Duljini sadržaja", a pozadina će čekati da se blok dovrši na temelju "Prijenos kodiranja: raščlanjeno".

Za razliku od tekstualnog HTTP / 1.1 protokola, koji je raščlanjen na linijskoj razini, HTTP / 2 je binarni protokol i manipulira blokovima podaci unaprijed određene veličine. Međutim, HTTP / 2 koristiti pseudo-zaglavlja koji odgovaraju normalnim HTTP zaglavljima. Prilikom interakcije s pozadinom koristeći HTTP / 1.1 protokol, sučelje prevodi te pseudozaglavlja u sličnim HTTP / 1.1 HTTP zaglavljima. Problem je u tome što pozadina donosi odluke o analizi prijenosa na temelju HTTP zaglavlja postavljenih od strane sučelja, bez poznavanja parametara izvornog zahtjeva.

Čak i u obliku pseudo-zaglavlja, vrijednosti "Content-length" i "transfer-encoding" mogu se strujati, iako se ne koriste u HTTP / 2, budući da se veličina svih podataka određuje u zasebnom polju. Međutim, prilikom pretvaranja HTTP / 2 zahtjeva u HTTP / 1.1, ova zaglavlja prolaze i mogu biti zbunjujuća za pozadinu.

Postoje dvije glavne opcije napada: H2.TE i H2.CL, u kojem pozadinu zavara pogrešno kodiranje prijenosa ili vrijednost duljine sadržaja koja ne odgovara stvarnoj veličini tijela zahtjeva koje je sučelje primilo putem HTTP / 2 protokola.

Kao primjer napada H2.CL, u pseudo-zaglavlju je navedena netočna veličina duljina sadržaja pri podnošenju zahtjeva HTTP / 2 na Netflix. Ovaj zahtjev dovodi do dodavanja zaglavlja HTTP sadržaj-duljina slično pri pristupu pozadini putem HTTP / 1.1, ali budući da je veličina u Sadržaj-Dužina je manji od stvarnog, dio podataka u redu se obrađuje kao početak sljedećeg zahtjeva.

Attack Tools već su dodani u Burp's Toolkit i dostupni su kao Turbo Intruder proširenje. Web proxyji, balansi učitavanja, web akceleratori, sustavi za isporuku sadržaja i druge konfiguracije u kojima se zahtjevi preusmjeravaju u shemi frontend-backend podložni su problemu.

izvor: https://portswigger.net


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.