detajet e një sulmi të ri ndaj faqeve që përdorin modelin front-end-backend, për shembull, ato që punojnë nëpërmjet rrjetesh të shpërndarjes së përmbajtjes, balancuesish ose proxy. Sulmi lejon, përmes dërgimit të kërkesave të caktuara, të përfshihet në përmbajtjen e kërkesave të tjera që po përpunohen në të njëjtin rrjedh ndërmjet front-end dhe back-end. Metoda e propozuar është aplikuar me sukses për të organizuar një sulm që lejon kapjen e parametrave të autentikimit të përdoruesve të shërbimit PayPal, i cili u pagoi studiuesve rreth 40 mijë dollarë në kuadër të programit të informimit mbi gjetjet e vulnerabiliteteve që nuk janë rregulluar. Sulmi është gjithashtu i aplikueshëm për faqet që përdorin rrjetin e shpërndarjes së përmbajtjes Akamai.
Thelbi i problemit është se front-end dhe back-end shpesh ofrojnë nivele të ndryshme mbështetjeje për protokollin HTTP, por në të njëjtën kohë inkapsulojnë kërkesat e përdoruesve të ndryshëm në një kanal të zakonshëm. Një lidhje TCP me jetëgjatësi të gjatë vendoset për lidhjen midis front-end që pranon kërkesat dhe back-end që përpunon ato kërkesa, përmes së cilës transmetohen kërkesat e përdoruesve, të dërguara njëra pas tjetrës me ndarje përmes protokollit HTTP. Për të ndarë kërkesat mund të përdoren titujt "Content-Length" (përcakton madhësinë totale të dhënave në kërkesë) dhe "" (lejon dërgimin e të dhënave në pjesë, duke treguar blloqe të ndryshme madhësish në formatin "{madhësia}\r\n{blloku}\r\n{madhësia}\r\n{blloku}\r\n0").
Problemi lind nëse front-end mbështet vetëm "Content-Length", por injoron "Transfer-Encoding: chunked" (për shembull, kështu vepronte CDN Akamai) ose e kundërta. Në rastin e mbështetjes së "Transfer-Encoding: chunked" në të dy anët, për sulmin mund të përdoren veçoritë e implementimit të parserëve të titujve HTTP (për shembull, kur front-end injoron rreshta si "Transfer-Encoding: xchunked", "Transfer-Encoding: chunked", "Transfer-Encoding:[tab]chunked", "X: X[\n]Transfer-Encoding: chunked", "Transfer-Encoding[\n]: chunked" ose "Transfer-Encoding : chunked", ndërsa back-end i përpunon ato me sukses).
Në këtë rast, sulmuesi mund të dërgojë një kërkesë që ka të dhëna nga titujt "Content-Length" dhe "Transfer-Encoding: chunked", por madhësia në "Content-Length" nuk përputhet me madhësinë e zinxhirit chunked, e cila është më e vogël se vlera aktuale. Nëse front-end e përpunon dhe redirekton kërkesën sipas "Content-Length", ndërsa back-end do të presë përfundimin e bllokut në bazë të "Transfer-Encoding: chunked", atëherë fundi i të dhënave në bazë të "Transfer-Encoding: chunked" do të përcaktohet më herët dhe pjesa e mbetur e kërkesës së sulmuesit do të përfshihet në fillim të kërkesës tjetër, dmth. sulmuesi do të ketë mundësinë të bashkëlidhë të dhëna të rastit në fillim të kërkesës së huaj që do të dërgohet më pas.

Për të përcaktuar problemin në kombinimin e përdorur front-end-back-end, përmes front-end mund të dërgohet një kërkesë si:
POST /about HTTP/1.1
Host: example.com
Transfer-Encoding: chunked
Content-Length: 4
1
Z
Q
Problemi është i pranishëm nëse back-end nuk e përpunon menjëherë kërkesën dhe pret të vijë blloku i fundit zero përfundimtar të të dhënave chunked. Për një kontroll më të plotë një mjet të veçantë, i cili gjithashtu teston metodat e mundshme për të fshehur titullin "Transfer-Encoding: chunked" nga front-end.
Kryerja e një sulmi të vërtetë varet nga mundësitë e faqes së sulmuar, për shembull, në sulmin ndaj aplikacionit web Trello mund të zëvendësohet fillimi i kërkesës (të vendosen të dhëna si "PUT /1/members/1234… x=x&csrf=1234&username=testzzz&bio=cake") dhe të dërgohet një mesazh që përmban kërkesën origjinale të një përdoruesi tjetër dhe të dhënat e tij Cookie të autentikimit. Për sulmin ndaj saas-app.com, u tregua e mundur të realizohet zëvendësimi i kodit JavaScript në përgjigje, përmes përfshirjes së tij në një nga parametrat e kërkesës. Për sulmin ndaj redhat.com, u përdor një përpunues i brendshëm për të redirektuar në faqen e sulmuesit (u përdor një kërkesë si "POST /search?dest=../assets/idx?redir=//redhat.com@evil.net/ HTTP/1.1").
Përdorimi i metodës për rrjetet e shpërndarjes së përmbajtjes lejonte thjesht zëvendësimin e faqes së kërkuar përmes përfshirjes së titullit "Host:". Sulmi është gjithashtu i aplikueshëm për organizimin e helmimit të përmbajtjeve të sistemeve të cache dhe nxjerrjes së të dhënave konfidenciale të cache-uara. Kulmi i aplikimit të metodës ishte organizimi i një sulmi ndaj PayPal, që lejonte kapjen e fjalëkalimeve që dërgoheshin nga përdoruesit gjatë autentikimit (u realizua ndryshimi i kërkesës iframe për të ekzekutuar JavaScript në kontekstin e faqes paypal.com/us/gifts, për të cilën nuk ishte aplikuar CSP (Politika e Sigurisë së Përmbajtjes)).
Është interesante se në vitin 2005 kishte një teknikë të ngjashme për zëvendësimin e kërkesave, që lejonte zëvendësimin e të dhënave në proxy që mbajnë cache (Tomcat, squid, mod_proxy) ose kalimin e bllokimeve të firewalleve përmes shënimit të disa kërkesave "GET" ose "POST" brenda një seance HTTP.
Burimi: opennet.ru
