Ushbu bo'limda request smuggling zaifliklarini ilovaning funksionalligiga qarab qanday turli usullarda ekspluatatsiya qilishni ko'rib chiqamiz.
Ba'zi ilovalarda front-end server xavfsizlik nazoratini (masalan access control) amalga oshiradi — ruxsat berilgan so'rovlarni back-end'ga uzatadi va back-end ularni qo'shimcha tekshirmasdan bajaradi. Bunday holda cheklangan URL'ga so'rov kontrabanda qilib access control'ni chetlab o'tish mumkin. Masalan, foydalanuvchi /home ga ruxsatli, lekin /admin ga emas:
POST /home HTTP/1.1
Host: vulnerable-website.com
Content-Length: 62
Transfer-Encoding: chunked
0
GET /admin HTTP/1.1
Host: vulnerable-website.com
Foo: xGET /home HTTP/1.1
Host: vulnerable-website.comFront-end ikkala so'rovni ham /home deb ko'radi va uzatadi. Back-end esa bittasini /admin deb ko'rib, u front-end nazoratidan o'tgan deb hisoblab, cheklangan URL'ga ruxsat beradi.
Ko'p ilovalarda front-end so'rovlarni back-end'ga uzatishdan oldin qayta yozadi — odatda header qo'shib (masalan X-Forwarded-For, foydalanuvchi ID'si, TLS ma'lumoti). Kontrabanda so'rovlaringiz bu header'larsiz bo'lsa, back-end ularni normal qayta ishlamasligi mumkin. Qayta yozishni oshkor qilish uchun parametr qiymatini javobga aks ettiradigan POST so'rovni toping, aks etadigan parametrni oxiriga qo'ying va uni kontrabanda qiling.
Ilovada matn ma'lumotini saqlab keyin ko'rsatadigan funksiya (izohlar, profil tavsifi va h.k.) bo'lsa, undan foydalanib boshqa foydalanuvchilar so'rovlarining mazmunini (sessiya tokenlari va boshqa maxfiy ma'lumot) qo'lga olish mumkin. Saqlash funksiyasiga ma'lumot yuboradigan so'rovni, saqlanadigan parametr oxirida turadigan va Content-Length haddan tashqari uzun bo'lgan holda kontrabanda qilasiz — keyingi foydalanuvchi so'rovining boshi shu parametrga qo'shiladi.
Ilova ham request smuggling'ga, ham reflected XSS'ga zaif bo'lsa, XSS payloadini kontrabanda qilib boshqa foydalanuvchilarga yetkazish mumkin. Bu oddiy reflected XSS'dan ustun: qurbon bilan hech qanday o'zaro aloqa talab qilmaydi va so'rov header'lari kabi oddiy usulda boshqarib bo'lmaydigan qismlardagi XSS'ni ham ekspluatatsiya qiladi. Masalan User-Agent header'idagi XSS:
POST / HTTP/1.1
Host: vulnerable-website.com
Content-Length: 63
Transfer-Encoding: chunked
0
GET / HTTP/1.1
User-Agent: <script>alert(1)</script>
Foo: XKo'p ilovalar Host header'idagi hostname'ni redirect URL'iga joylab on-site redirect bajaradi (Apache va IIS'ning standart xatti-harakati). Buni kontrabanda qilib boshqa foydalanuvchilarni tashqi domenga yo'naltirish mumkin — masalan qurbon so'ragan JavaScript faylini o'z domeningizga yo'naltirib, uni to'liq buzasiz.
Yuqoridagi redirect hujumining variatsiyasida, agar front-end infratuzilma kontent keshlaydigan bo'lsa, off-site redirect javobi bilan keshni zaharlash mumkin — bu hujumni barqaror qiladi. Web cache poisoningda hujumchi zararli kontentni keshga saqlaydi. Web cache deceptionda esa hujumchi boshqa foydalanuvchining maxfiy kontentini keshga saqlatib, keyin uni keshdan oladi.