XSS zaifliklari ikki asosiy toifaga bo‘linadi: stored (saqlanadigan) yoki reflected (aks ettiriladigan).

Stored XSS hujumlari, ba’zida Persistent XSS (doimiy XSS) deb ham ataladi, ekspluatatsiya kodi (payload) ma’lumotlar bazasida yoki server tomonidan boshqa bir joyda saqlanganda yuz beradi. Veb-ilova bu payloadni qayta yuklab, zaif sahifaga kirgan har qanday foydalanuvchiga ko‘rsatadi. Bitta Stored XSS zaifligi butun sayt foydalanuvchilariga qarshi hujum uyushtirish imkonini beradi. Bu turdagi XSS ko‘pincha forum dasturlarida, ayniqsa izoh (comment) bo‘limlarida, mahsulot sharhlarida yoki foydalanuvchi kontenti saqlanib, keyinchalik ko‘rib chiqiladigan har qanday joyda uchraydi.

Reflected XSS hujumlari odatda maxsus shakllantirilgan so‘rov yoki havola ichida payloadni o‘z ichiga oladi. Veb-ilova bu qiymatni olib, sahifa tarkibiga joylashtiradi. Bu XSS varianti faqat so‘rov yuborgan yoki havolani bosgan foydalanuvchiga ta’sir qiladi. Reflected XSS zaifliklari ko‘pincha qidiruv maydonlarida yoki natijalarda, shuningdek foydalanuvchi kiritgan ma’lumot xatolik xabarlariga chiqariladigan har qanday holatda yuz berishi mumkin.

Bu ikki zaiflik turi ham foydalanuvchi (brauzer) yoki server tomonida namoyon bo‘lishi mumkin; ular shuningdek DOM-based shaklida ham bo‘lishi mumkin.

DOM-based XSS faqatgina sahifaning Document Object Model (DOM) tarkibida yuz beradi. (DOM bu brauzer sahifa HTML’ini tahlil qilib, hosil qiladigan ichki tuzilma hisoblanadi.) Biz hozircha tafsilotlarga to‘liq to‘xtalmasak ham, shuni bilishimiz kerakki, brauzer sahifaning HTML tarkibini tahlil qiladi va ichki DOM vakili yaratadi. DOM-based XSS foydalanuvchi tomonidan boshqariladigan qiymatlar bilan sahifaning DOM’i o‘zgartirilganda sodir bo‘ladi. DOM-based XSS ham stored, ham reflected ko‘rinishida bo‘lishi mumkin; asosiy farq shundaki, DOM-based XSS hujumlari sahifa kontenti brauzer tomonidan tahlil qilinayotganda va JavaScript kodi ishga tushirilganda ro‘y beradi.

XSS payload qanday yetkazilganidan va ishga tushirilganidan qat’i nazar, kiritilgan skriptlar ta’sirlangan sahifani ko‘rayotgan foydalanuvchi kontekstida bajariladi. Bu degani, XSS payloadni veb-ilova emas, balki foydalanuvchining brauzeri bajaradi. Ushbu hujumlar shunga qaramay juda jiddiy bo‘lishi mumkin. Ular quyidagi oqibatlarga olib keladi: sessiyani o‘g‘irlash (session hijacking), zararli sahifalarga majburiy yo‘naltirish, foydalanuvchi nomidan lokal ilovalarni ishga tushirish yoki hatto trojanlashtirilgan veb-ilovalarni yaratish. Keyingi bo‘limlarda biz bu hujumlarning ayrim turlarini ko‘rib chiqamiz.


Manbalar:

  1. (Wikipedia, 2022): https://en.wikipedia.org/wiki/Cross-site_scripting#Persistent_(or_stored)
  2. (Wikipedia, 2022): https://en.wikipedia.org/wiki/Cross-site_scripting#Non-persistent_(reflected)
  3. (Wikipedia, 2022): https://en.wikipedia.org/wiki/Cross-site_scripting#Server-side_versus_DOM-based_vulnerabilities
  4. (Mozilla, 2022): https://developer.mozilla.org/en-US/docs/Web/API/Document_Object_Model/Introduction