Ata gjetën një version të ri të sulmit HTTP Request Kontrabandë

L sistemet e uebit ku frontend pranon lidhje nëpërmjet HTTP / 2 dhe i kalon ato në pjesën e pasme nëpërmjet HTTP / 1.1 hjanë ekspozuar ndaj një versioni të ri të sulmit "Kërkoni kontrabandë HTTP", Ai lejon duke dërguar kërkesa të klientëve të krijuar posaçërisht, për të ndarë në përmbajtjen e kërkesave të përdoruesve të tjerë të përpunuar në të njëjtën rrjedhë midis frontit dhe sfondit.

Sulmi mund të përdoret për të injektuar kod me qëllim të keq JavaScript në një sesion me një sit të ligjshëm, anashkaloni sistemet e kufizimit të aksesit dhe përgjoni parametrat e vërtetimit.

Autori i studimit demonstroi mundësinë e sulmimit të sistemeve Netflix, Verizon, Bitbucket, Netlify CDN dhe Atlassian, dhe mori 56.000 dollarë në programe shpërblimi për identifikimin e dobësive. Problemi është konfirmuar edhe në produktet e F5 Networks.

Problemi ndikon pjesërisht në mod_proxy në serverin Apache http (CVE-2021-33193), rregullimet e pritshme në versionin 2.4.49 (zhvilluesit u njoftuan për problemin në fillim të majit dhe iu dhanë 3 muaj kohë për ta rregulluar atë). Në nginx, aftësia për të specifikuar njëkohësisht titujt "Përmbajtja-Gjatësia" dhe "Transferimi-Kodimi" u bllokua në versionin e mëparshëm (1.21.1).

Parimi i funksionimit të metodës së re të kërkesave që përputhen në trafik është e ngjashme me dobësinë e zbuluar nga i njëjti studiues dy vjet më parë, por është i kufizuar në ndërfaqet që pranojnë kërkesa mbi HTTP / 1.1.

Sulmi klasik "Trafikimi i Kërkesave HTTP" u bazua në faktin se frontendet dhe backend-et interpretojnë përdorimin e titujve të HTTP "Gjatësia e Përmbajtjes" ndryshe (përcakton madhësinë totale të të dhënave në kërkesë) dhe "Transferimi-Kodimi: copëzuar" ( ju lejon të transferoni të dhëna në copa) ...

Për shembull, nëse ndërfaqja mbështet vetëm "Content-Length" por injoron "Transfer-Encoding: Fragmented", një sulmues mund të dërgojë një kërkesë që përmban titujt "Content-Length" dhe "Transfer-Encoding: Fragmented", por madhësia jw.org sq "Gjatësia e përmbajtjes" nuk përputhet me madhësinë e vargut të copëtuar. Në këtë rast, pjesa e përparme do të përpunojë dhe ridrejtojë kërkesën sipas "Gjatësisë së përmbajtjes", dhe pjesa e pasme do të presë që blloku të përfundojë bazuar në "Transferimi i kodimit: copëzuar".

Ndryshe nga protokolli tekstual HTTP / 1.1, i cili analizohet në nivelin e linjës, HTTP / 2 është një protokoll binar dhe manipulon blloqet të dhëna të një madhësie të paracaktuar. Sidoqoftë, HTTP / 2 përdorni pseudo-tituj të cilat korrespondojnë me titujt normal HTTP. Kur bashkëveproni me backend duke përdorur protokollin HTTP / 1.1, frontend i përkthen këto pseudo-tituj në kokë të ngjashme HTTP / 1.1 HTTP. Problemi është se backendi merr vendime në lidhje me analizën e transmetimit bazuar në titujt HTTP të vendosur nga frontend, pa i ditur parametrat e kërkesës origjinale.

Edhe në formën e pseudo-titujve, vlerat "Gjatësia e përmbajtjes" dhe "kodimi i transferimit" ato mund të transmetohen, edhe pse nuk përdoren në HTTP / 2, pasi madhësia e të gjitha të dhënave përcaktohet në një fushë të veçantë. Sidoqoftë, kur shndërroni një kërkesë HTTP / 2 në HTTP / 1.1, këto tituj kalojnë dhe mund të jenë konfuze për pjesën e pasme.

Ekzistojnë dy opsione kryesore të sulmit: H2.TE dhe H2.CL, në të cilën sfondi mashtrohet nga një kodim i pasaktë i transferimit ose një vlerë e gjatësisë së përmbajtjes që nuk korrespondon me madhësinë aktuale të trupit të kërkesës të marrë nga fronti përmes Protokollit HTTP / 2.

Si shembull i sulmit H2.CL, një madhësi e pasaktë specifikohet në pseudo-kokën gjatësia e përmbajtjes kur paraqisni një kërkesë HTTP / 2 në Netflix. Kjo kërkesë çon në shtimin e një titulli Përmbajtja HTTP-Gjatësia e ngjashme kur hyni në backend përmes HTTP / 1.1, por që nga madhësia në Gjatësia e përmbajtjes është më pak se aktuale, një pjesë e të dhënave në radhë përpunohen si fillimi i kërkesës tjetër.

Mjetet e Sulmit tashmë janë shtuar në Burk's Toolkit dhe janë në dispozicion si një shtrirje Turbo Intruder. Përfaqësuesit e uebit, balancuesit e ngarkesës, përshpejtuesit e uebit, sistemet e shpërndarjes së përmbajtjes dhe konfigurimet e tjera ku kërkesat janë ridrejtuar në një skemë të përparme të përparme janë të ndjeshëm ndaj problemit.

Fuente: https://portswigger.net


Bëhu i pari që komenton

Lini komentin tuaj

Adresa juaj e emailit nuk do të publikohet. Fusha e kërkuar janë shënuar me *

*

*

  1. Përgjegjës për të dhënat: Miguel Ángel Gatón
  2. Qëllimi i të dhënave: Kontrolloni SPAM, menaxhimin e komenteve.
  3. Legjitimimi: Pëlqimi juaj
  4. Komunikimi i të dhënave: Të dhënat nuk do t'u komunikohen palëve të treta përveç me detyrim ligjor.
  5. Ruajtja e të dhënave: Baza e të dhënave e organizuar nga Occentus Networks (BE)
  6. Të drejtat: Në çdo kohë mund të kufizoni, rikuperoni dhe fshini informacionin tuaj.