De fandt en ny version af HTTP Request Smuggling -angrebet

masse websystemer, hvor frontend accepterer forbindelser via HTTP / 2 og sender dem til backend via HTTP / 1.1 her blevet udsat for en ny version af angrebet "HTTP Request Smuggling", Det tillader ved at sende specialdesignede klientanmodninger at opdele indholdet i anmodninger fra andre brugere, der behandles i samme flow mellem frontend og backend.

Angrebet kan bruges til at injicere ondsindet JavaScript -kode i en session med et legitimt websted, omgå adgangsbegrænsningssystemer og opsnappe godkendelsesparametre.

Forfatteren af ​​undersøgelsen demonstreret muligheden for at angribe Netflix, Verizon, Bitbucket, Netlify CDN og Atlassian -systemer, og modtog $ 56.000 i belønningsprogrammer for at identificere sårbarheder. Problemet er også blevet bekræftet i F5 Networks -produkter.

Problemet påvirker delvist mod_proxy på Apache http -server (CVE-2021-33193), rettelser forventes i version 2.4.49 (udviklere blev underrettet om problemet i begyndelsen af ​​maj og fik 3 måneder til at løse det). I nginx blev muligheden for samtidig at specificere "Content-Length" og "Transfer-Encoding" headers blokeret i den tidligere version (1.21.1).

Princippet om drift af den nye metode af matchende anmodninger i trafikken ligner den sårbarhed, som den samme forsker opdagede for to år siden, men det er begrænset til grænseflader, der accepterer anmodninger via HTTP / 1.1.

Det klassiske "HTTP Request Smuggling" -angreb var baseret på det faktum, at frontends og backends tolker brugen af ​​HTTP "Content-Length" -hoveder forskelligt (bestemmer den samlede størrelse af dataene i anmodningen) og "Transfer-Encoding: chunked" ( giver dig mulighed for at overføre data i bidder) ...

Hvis grænsefladen f.eks. Kun understøtter "Indholdslængde", men ignorerer "Overførselskodning: fragmenteret", kan en angriber sende en anmodning, der indeholder overskrifterne "Indholdslængde" og "Overførselskodning: fragmenteret", men størrelsen da "Indholdets længde" matcher ikke størrelsen på den stumpede streng. I dette tilfælde vil frontend behandle og omdirigere anmodningen i henhold til "Indholdslængde", og backend venter på, at blokken er fuldført baseret på "Overførselskodning: klumpet".

I modsætning til den tekstlige HTTP / 1.1 -protokol, der er analyseret på linjeniveau, HTTP / 2 er en binær protokol og manipulerer blokke data af en forudbestemt størrelse. Dog HTTP / 2 brug pseudohoveder som svarer til normale HTTP -headere. Når man interagerer med backend ved hjælp af HTTP / 1.1 -protokollen, frontenden oversætter disse pseudohoveder i lignende HTTP / 1.1 HTTP -overskrifter. Problemet er, at backend træffer beslutninger om analyse af transmissionen baseret på HTTP -headere, der er angivet af frontend, uden at kende parametrene for den oprindelige anmodning.

Selv i form af pseudohoveder, værdierne "Indholdslængde" og "overførselskodning" de kan streames, selvom de ikke bruges i HTTP / 2, da størrelsen af ​​alle data bestemmes i et separat felt. Ved konvertering af en HTTP / 2 -anmodning til HTTP / 1.1 passerer disse overskrifter imidlertid og kan være forvirrende for backend.

Der er to hovedangrebsmuligheder: H2.TE og H2.CL, hvor backend narres af en forkert overførselskodning eller en indholdslængdeværdi, der ikke svarer til den faktiske størrelse af det anmodningslegeme, som frontend modtog via HTTP / 2 -protokollen.

Som et eksempel på H2.CL-angrebet er den forkerte størrelse angivet i pseudohovedet indholdslængde ved indsendelse af en anmodning HTTP / 2 til Netflix. Denne anmodning fører til tilføjelse af et overskrift HTTP-indholdslængde lignende ved adgang til backend via HTTP / 1.1, men da størrelsen i Content-Length er mindre end den faktiske, behandles en del af dataene i køen som begyndelsen på den næste anmodning.

Attack Tools er allerede tilføjet til Burps Toolkit og er tilgængelige som en Turbo Intruder -udvidelse. Webproxy, load balancers, webacceleratorer, indholdsleveringssystemer og andre konfigurationer, hvor anmodninger omdirigeres i en frontend-backend-ordning, er modtagelige for problemet.

kilde: https://portswigger.net


Efterlad din kommentar

Din e-mailadresse vil ikke blive offentliggjort. Obligatoriske felter er markeret med *

*

*

  1. Ansvarlig for dataene: Miguel Ángel Gatón
  2. Formålet med dataene: Control SPAM, management af kommentarer.
  3. Legitimering: Dit samtykke
  4. Kommunikation af dataene: Dataene vil ikke blive kommunikeret til tredjemand, undtagen ved juridisk forpligtelse.
  5. Datalagring: Database hostet af Occentus Networks (EU)
  6. Rettigheder: Du kan til enhver tid begrænse, gendanne og slette dine oplysninger.