De fant en ny versjon av HTTP Request Smuggling -angrepet

den websystemer der frontenden godtar tilkoblinger via HTTP / 2 og sender dem til backend via HTTP / 1.1 thar blitt utsatt for en ny versjon av angrepet "HTTP Request Smuggling", Den tillater ved å sende spesialdesignede klientforespørsler å dele innholdet i forespørslene til andre brukere som behandles i samme flyt mellom frontend og backend.

Angrepet kan brukes til å injisere skadelig JavaScript -kode i en økt med et legitimt nettsted, omgå tilgangsbegrensningssystemer og avskjære autentiseringsparametere.

Forfatteren av studien demonstrert muligheten for å angripe Netflix, Verizon, Bitbucket, Netlify CDN og Atlassian -systemer, og mottok $ 56.000 5 i belønningsprogrammer for å identifisere sårbarheter. Problemet er også bekreftet i FXNUMX Networks -produkter.

Problemet påvirker delvis mod_proxy på Apache http -server (CVE-2021-33193), reparasjoner som forventes i versjon 2.4.49 (utviklere ble varslet om problemet i begynnelsen av mai og fikk 3 måneder på å fikse det). I nginx ble muligheten til å spesifisere overskriftene "Content-Length" og "Transfer-Encoding" samtidig blokkert i den forrige versjonen (1.21.1).

Arbeidsprinsippet for den nye metoden av matchende forespørsler i trafikken ligner sårbarheten som den samme forskeren oppdaget for to år siden, men det er begrenset til grensesnitt som godtar forespørsler over HTTP / 1.1.

Det klassiske "HTTP Request Smuggling" -angrepet var basert på det faktum at frontends og backends tolker bruken av HTTP "Content-Length" -hoder annerledes (bestemmer den totale størrelsen på dataene i forespørselen) og "Transfer-Encoding: chunked" ( lar deg overføre data i biter) ...

For eksempel, hvis grensesnittet bare støtter "Content-Length", men ignorerer "Transfer-Encoding: Fragmented", kan en angriper sende en forespørsel som inneholder overskriftene "Content-Length" og "Transfer-Encoding: Fragmented", men størrelsen jw.org nb "Innholdslengden" samsvarer ikke med størrelsen på den store delen. I dette tilfellet vil frontend behandle og omdirigere forespørselen i henhold til "Content length", og backend vil vente på at blokken skal fullføres basert på "Transfer encoding: chunked".

I motsetning til den tekstlige HTTP / 1.1 -protokollen, som er analysert på linjenivå, HTTP / 2 er en binær protokoll og manipulerer blokker data av en forhåndsbestemt størrelse. Imidlertid HTTP / 2 bruk pseudohoder som tilsvarer vanlige HTTP -overskrifter. Når du samhandler med backend ved hjelp av HTTP / 1.1 -protokollen, frontend oversetter disse pseudohodene i lignende HTTP / 1.1 HTTP -overskrifter. Problemet er at backend tar beslutninger om analyse av overføringen basert på HTTP -overskriftene satt av frontend, uten å vite parametrene til den opprinnelige forespørselen.

Selv i form av pseudohoder, verdiene "Innholdslengde" og "overføringskoding" de kan streames, selv om de ikke brukes i HTTP / 2, siden størrelsen på alle data bestemmes i et eget felt. Imidlertid, når du konverterer en HTTP / 2 -forespørsel til HTTP / 1.1, går disse overskriftene gjennom og kan være forvirrende for backend.

Det er to hovedangrepsmuligheter: H2.TE og H2.CL, der backend blir lurt av en feil overføringskoding eller en innholdslengdeverdi som ikke samsvarer med den faktiske størrelsen på forespørselskroppen mottatt av frontend via HTTP / 2 -protokollen.

Som et eksempel på H2.CL-angrepet er en feil størrelse spesifisert i pseudo-overskriften innholdslengde når du sender inn en forespørsel HTTP / 2 til Netflix. Denne forespørselen fører til tillegg av en overskrift HTTP-innholdslengde lignende når du får tilgang til backend via HTTP / 1.1, men siden størrelsen i Innholdslengde er mindre enn den faktiske, blir en del av dataene i køen behandlet som begynnelsen på den neste forespørselen.

Attack Tools er allerede lagt til i Burps Toolkit og er tilgjengelig som en Turbo Intruder -utvidelse. Webmottakere, lastbalanserere, webakseleratorer, innholdsleveringssystemer og andre konfigurasjoner der forespørsler blir omdirigert i et frontend-backend-system, er utsatt for problemet.

Fuente: https://portswigger.net


Innholdet i artikkelen følger våre prinsipper for redaksjonell etikk. Klikk på for å rapportere en feil her.

Bli den første til å kommentere

Legg igjen kommentaren

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Kontroller SPAM, kommentaradministrasjon.
  3. Legitimering: Ditt samtykke
  4. Kommunikasjon av dataene: Dataene vil ikke bli kommunisert til tredjeparter bortsett fra ved juridisk forpliktelse.
  5. Datalagring: Database vert for Occentus Networks (EU)
  6. Rettigheter: Når som helst kan du begrense, gjenopprette og slette informasjonen din.