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

u web sustavi gdje sučelje prihvaća veze putem HTTP / 2 i prosljeđuje ih pozadini putem HTTP / 1.1 hbili izloženi novoj verziji napada "Krijumčarenje HTTP zahtjeva", Omogućava slanjem posebno osmišljenih klijentskih zahtjeva 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 sa legitimnom lokacijom, zaobiđite sisteme ograničenja pristupa i presretnite parametre provjere autentičnosti.

Autor studije pokazao mogućnost napada na Netflix, Verizon, Bitbucket, Netlify CDN i Atlassian sisteme, i primio 56.000 USD u programe nagrađivanja za identifikaciju ranjivosti. Problem je potvrđen i 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 maja i dali su im 3 mjeseca da ga poprave). U nginxu je mogućnost istovremenog navođenja zaglavlja "Content-Length" i "Transfer-Encoding" blokirana u prethodnoj verziji (1.21.1).

Princip rada nove metode podudaranja zahtjeva u saobraćaju slična je ranjivosti koju je isti istraživač otkrio prije dvije godine, ali je ograničeno na sučelja koja prihvaćaju zahtjeve preko HTTP / 1.1.

Klasični napad "Krijumčarenje HTTP zahtjeva" zasnovan je na činjenici da frontends i pozadine različito tumače upotrebu HTTP zaglavlja "Content-Length" (određuje ukupnu veličinu podataka u zahtjevu) i "Transfer-Encoding: chunked" ( 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 nasjeckanog niza. U ovom slučaju, sučelje će obraditi i preusmjeriti zahtjev u skladu s "Dužinom sadržaja", a pozadina će čekati da se blok dovrši na osnovu "Transfer encoding: chunked".

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

Čak i u obliku pseudo-zaglavlja, vrijednosti "Content-length" i "transfer-encoding" mogu se prenositi, 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 dužine sadržaja koja ne odgovara stvarnoj veličini tijela zahtjeva koji je interfejs primio putem HTTP / 2 protokola.

Kao primjer H2.CL napada, pogrešna veličina navedena je u pseudo-zaglavlju dužina sadržaja prilikom podnošenja zahtjeva HTTP / 2 na Netflix. Ovaj zahtjev dovodi do dodavanja zaglavlja HTTP sadržaj-dužina slično pri pristupu pozadini putem HTTP / 1.1, ali budući da je veličina u Dužina sadržaja 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 proksiji, balansi učitavanja, web akceleratori, sistemi za isporuku sadržaja i druge konfiguracije u kojima se zahtjevi preusmjeravaju u pozadinskoj shemi sučelja podložni su problemu.

Izvor: https://portswigger.net


Ostavite komentar

Vaša e-mail adresa neće biti objavljena. Obavezna polja su označena sa *

*

*

  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 obavezi.
  5. Pohrana podataka: Baza podataka koju hostuje Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.