Ushbu bo'limda saytni HTTP Host header hujumlariga zaifligini qanday aniqlash va uni ekspluatatsiya qilishni ko'rsatamiz.
Sinash uchun Burp Proxy kabi intercepting proksi kerak. Asosiy maqsad — Host sarlavhasini o'zgartira olib, so'rovingiz baribir nishon ilovaga yetib borishini aniqlash. Burp Suite Host sarlavhasi va nishon IP manzil o'rtasidagi ajratishni aniq saqlaydi, shuning uchun istalgan Host sarlavhasini berib, so'rovni mo'ljallangan nishonga yuborish mumkin.
Ba'zi tahlil algoritmlari Host sarlavhasidan portni chiqaradi, ya'ni faqat domen nomi tekshiriladi. Agar raqamli bo'lmagan port bera olsangiz, domen nomini tegmagan holda, port orqali payload inyeksiya qilishingiz mumkin:
GET /example HTTP/1.1
Host: vulnerable-website.com:bad-stuff-hereBoshqa saytlar ixtiyoriy subdomenlarga ruxsat berishga urinadi — bunda oq ro'yxatdagi bilan bir xil belgilar ketma-ketligi bilan tugaydigan ixtiyoriy domen ro'yxatdan o'tkazib, tekshiruvni chetlab o'tish mumkin.
Host'ni tekshiradigan kod va u bilan xavfli ish qiladigan kod ko'pincha turli komponentlarda joylashgan. Ular Host'ni qanday olishidagi farqlarni ekspluatatsiya qilib, har xil tizimga har xil ko'rinadigan noaniq so'rov yuborish mumkin. Masalan, ikkita Host sarlavhasini qo'shish:
GET /example HTTP/1.1
Host: vulnerable-website.com
Host: bad-stuff-hereAgar front-end birinchi sarlavhaga, back-end esa oxirgi sarlavhaga ustunlik bersa, birinchisidan so'rovni to'g'ri nishonga yo'naltirishda, ikkinchisidan esa payloadni serverga o'tkazishda foydalanish mumkin. Yoki absolute URL berish (GET https://vulnerable-website.com/ HTTP/1.1) yoki sarlavhani bo'sh joy bilan chekintirib (line wrapping) nomuvofiqliklar yuzaga keltirish mumkin.
Noaniq so'rov bilan Host'ni override qila olmasangiz ham, front-end ko'pincha X-Forwarded-Host sarlavhasini inyeksiya qiladi va ko'p freymvorklar mavjud bo'lsa o'shanga murojaat qiladi. Buni Host sarlavhasidagi tekshiruvni chetlab o'tib, zararli kiritma inyeksiya qilish uchun ishlatish mumkin:
GET /example HTTP/1.1
Host: vulnerable-website.com
X-Forwarded-Host: bad-stuff-hereShunga o'xshash boshqa sarlavhalar: X-Host, X-Forwarded-Server, X-HTTP-Host-Override, Forwarded.
Hujumchilar ba'zan Host sarlavhasini password reset poisoning hujumlari uchun ishlatishi mumkin.
Host sarlavhasi javob markupida HTML-kodlanmasdan aks etsa, reflected client-side zaiflik (XSS) o'z-o'zidan ekspluatatsiya qilib bo'lmaydi. Biroq nishon web kesh ishlatsa, keshni boshqa foydalanuvchilarga zaharlangan javob berishga ko'ndirib, bu foydasiz zaiflikni xavfli, saqlanadigan zaiflikka aylantirish mumkin.
Ba'zi saytlar muayyan funksiyani faqat ichki foydalanuvchilar bilan cheklaydi. Ba'zilarining access control xususiyatlari buzuq taxminlar qiladiki, Host sarlavhasiga oddiy o'zgartirishlar kiritib, bu cheklovlarni chetlab o'tish mumkin.
Kompaniyalar ba'zan ommaviy va shaxsiy ichki saytlarni bir serverda joylashtiradi. Ichki hostname shaxsiy IP manzilga resolve bo'lsa ham, hujumchi hostname'ni taxmin qilsa, serverdagi istalgan virtual host'ga kirishi mumkin — masalan Burp Intruder bilan subdomenlarni brute-force qilib.
Host sarlavhasini yuqori ta'sirli, routing-based SSRF hujumlari uchun ham ishlatish mumkin ("Host header SSRF"). Bu ko'p bulut arxitekturasidagi oraliq komponentlarni (load balancer, reverse proxy) ekspluatatsiya qilishga tayanadi. Agar ular tekshirilmagan Host sarlavhasiga qarab so'rovlarni yo'naltirsa, ularni hujumchi tanlagan ixtiyoriy tizimga noto'g'ri marshrutlashga majbur qilish mumkin. Bu tizimlar imtiyozli tarmoq holatida turib, ichki tarmoqqa kirish imkoniga ega.
Ko'p saytlar unumdorlik uchun ulanishlarni bir mijoz bilan bir nechta so'rov/javob sikli uchun qayta ishlatadi. Yomon joriy qilingan HTTP serverlar ba'zan Host sarlavhasi bir ulanishdagi barcha so'rovlar uchun bir xil deb xavfli taxmin qiladi. Ba'zan server faqat yangi ulanishdagi birinchi so'rovni to'liq tekshiradi — shunda zararsiz birinchi so'rov yuborib, so'ng o'sha ulanishda zararli so'rov yuborib, tekshiruvni chetlab o'tish mumkin.