täiendavad detailid rünnaku kohta, mis suunatud sisu jaotamise mudelit kasutavatele saitidele, sealhulgas neile, mis töötavad sisuteenuste, tasakaalustajate või prokside kaudu. Rünnak võimaldab teatud päringute saatmise kaudu teistesse päringutesse, mis töötavad samas voos, siseneda. Pakutud meetodit on edukalt rakendatud rünnaku korraldamiseks, mille käigus on võimalik õiguslikult haarata PayPali teenuse autentimise parameetreid – organisatsioon, mis on maksnud teadlastele umbes 40 000 dollarit, et teavitada neid mitteparandatud haavatavustest. Rünnak on rakendatav ka saitidele, mis kasutavad Akamai sisu jaotamise võrku.
Probleemi olemus seisneb selles, et front-end'id ja back-end'id pakuvad sageli erinevat HTTP protokolli toetuse taset, samas kui nad kapseldavad erinevate kasutajate päringud ühisesse kanalisse. Nõudlusi vastu võtvate front-end'ide ja päringuid töötlevate back-end'ide vahel luuakse pikaajaline TCP-ühendus, mille kaudu edastatakse kasutajate päringud järjestikku, kasutades HTTP protokolli vahendeid. Päringute eraldamiseks võivad olla kasutusel pealkirjad "Content-Length" (määra andmete kogumaht päringus) ja "" (võimaldab edastada andmeid osade kaupa, näidates erineva suurusega plokke formaadis "{suurus}\r\n{plokk}\r\n{suurus}\r\n{plokk}\r\n0").
Probleem tekib, kui frontend toetab ainult "Content-Length", kuid ignoreerib "Transfer-Encoding: chunked" (näiteks käitus CDN Akamai nii) või vastupidi. Kui mõlemad pooled toetavad "Transfer-Encoding: chunked", siis rünnakuks võivad kasutada HTTP pealkirjade parserite rakenduse tunnuseid (näiteks kui frontend ignoreerib selliseid ridu nagu "Transfer-Encoding: xchunked", "Transfer-Encoding: chunked", "Transfer-Encoding:[tab]chunked", "X: X[\n]Transfer-Encoding: chunked", "Transfer-Encoding[\n]: chunked" või "Transfer-Encoding : chunked", samas kui backend suudab neid edukalt töödelda).
Sellisel juhul võib ründaja saata päringu, milles on samal ajal määratud päised "Content-Length" ja "Transfer-Encoding: chunked", kuid "Content-Length" väärtus ei vasta tegelikule chunked-ahelale, mis on väiksem kui tegelik väärtus. Kui front-end töötleb ja suunab päringu "Content-Length" alusel, samal ajal kui taust süsteem ootab blokki lõppu "Transfer-Encoding: chunked" alusel, siis määratakse andmete lõpp "Transfer-Encoding: chunked" alusel varem, jättes ründaja päringus olevad jäägid järgmise päringu algusesse, st ründajal on võimalus lisada omavolilisi andmeid kellegi teise päringu algusesse, mis järgneb.

Probleemi määramiseks võib front-end'i ja taustsüsteemi vahel saata järgmise tüübi päringu:
POST /about HTTP/1.1
Host: example.com
Transfer-Encoding: chunked
Content-Length: 4
1
Z
K
Probleem on olemas, kui taustsüsteem ei töötle päringut kohe ja ootab lõpliku null-lõppemeetodi chunked-andmete saabumist. Täiendava kontrolli jaoks on eriline utiliit, mis testib ka võimalikke meetodeid päise "Transfer-Encoding: chunked" varjamine front-end'i eest.
Reaalsed rünnakud sõltuvad rünnatava saidi omadustest. Näiteks Trello veebirakenduse rünnaku korral on võimalik muuta küsitava algust (asendada andmed nagu «PUT /1/members/1234… x=x&csrf=1234&username=testzzz&bio=cake») ja saata sõnum, mis sisaldab originaalküsimust kolmandalt kasutajalt koos autentimis-Cookie'idega. SaaS-app.com rünnaku puhul õnnestus JavaScript-koodi sisestamine vastuses, muutes selle üheks taotluse parameetriks. Redhat.com rünnakuks kasutati sisemist töötlejat, et suunata rünnaku sae saidile (kasutati taotlust nagu «POST /search?dest=../assets/idx?redir=//redhat.com@evil.net/ HTTP/1.1»).
Sisu kohaldamine sisu edastamise võrkudele võimaldas hõlpsasti asendada küsitud veebisaidi, kasutades "Host:" päise asendust. Seda rünnakut saab rakendada ka sisu vahemälusüsteemide mürgitamiseks ja konfidentsiaalsete andmete väljatoomiseks. Meetodi tipp saavutati PayPal'i rünnaku korraldamisega, mis võimaldas kinni püüda paroolid, mida kasutajad sisestasid autentimise käigus (mille raames muudeti iframe'i päringut, et käivitada JavaScript paypal.com/us/gifts lehe kontekstis, mille puhul CSP-d (sisupoliitika) ei rakendatud).
Huvitav, et 2005. aastal oli sarnane päringute asendamise tehnika, mis võimaldas andmete asendamist vahemälu loovates vaheproxydes (Tomcat, squid, mod_proxy) või tulekaitseblokkeeringute ületamist, määrates mitmeid "GET" või "POST" päringuid ühe HTTP-seansi raames.
Allikas: opennet.ru
