FixVibe
Covered by FixVibehigh

Saytlararo skriptlarni aniqlash va oldini olish (XSS) zaifliklari

Saytlararo skript yaratish (XSS) ilova veb-sahifadagi ishonchsiz maʼlumotlarni toʻgʻri tekshirish yoki kodlashsiz oʻz ichiga olganida yuzaga keladi. Bu tajovuzkorlarga qurbonning brauzerida zararli skriptlarni bajarishga imkon beradi, bu esa seansni o'g'irlash, ruxsat etilmagan harakatlar va maxfiy ma'lumotlarning oshkor etilishiga olib keladi.

CWE-79

Ta'sir

Saytlararo skript (XSS) zaifligidan muvaffaqiyatli foydalanadigan tajovuzkor jabrlanuvchi foydalanuvchi sifatida niqoblanishi, foydalanuvchi bajarishi mumkin bo‘lgan har qanday harakatni amalga oshirishi va [S1] foydalanuvchi ma’lumotlariga kirishi mumkin. Bunga hisoblarni oʻgʻirlash uchun seans kukilarini oʻgʻirlash, soxta shakllar orqali kirish hisob maʼlumotlarini olish yoki [S1][S2] virtual buzilishlarini amalga oshirish kiradi. Agar jabrlanuvchi ma'muriy imtiyozlarga ega bo'lsa, tajovuzkor dastur va uning ma'lumotlari [S1] ustidan to'liq nazoratni qo'lga kiritishi mumkin.

Asosiy sabab

XSS ilova foydalanuvchi tomonidan boshqariladigan maʼlumotni qabul qilganda va uni [S2] toʻgʻri neytrallash yoki kodlashsiz veb-sahifaga kiritganda yuzaga keladi. Bu jabrlanuvchining brauzeri tomonidan kiritilgan ma'lumotlarni faol kontent (JavaScript) sifatida talqin qilish imkonini beradi, bu esa veb-saytlarni bir-biridan [S1][S2]dan ajratish uchun mo'ljallangan bir xil kelib chiqish siyosatini chetlab o'tadi.

Zaiflik turlari

  • XSS aks ettirilgan: Zararli skriptlar veb-ilovadan jabrlanuvchining brauzerida aks ettiriladi, odatda [S1] URL parametri orqali.
  • Saqlangan XSS: Skript doimiy ravishda serverda saqlanadi (masalan, maʼlumotlar bazasi yoki sharhlar boʻlimida) va keyinchalik [S1][S2] foydalanuvchilarga taqdim etiladi.
  • DOM-ga asoslangan XSS: Zaiflik butunlay mijoz tomoni kodida mavjud bo‘lib, u ishonchsiz manba ma’lumotlarini innerHTML [S1] ga yozish kabi xavfsiz tarzda qayta ishlaydi.

Beton tuzatishlar

  • Chiqishdagi maʼlumotlarni kodlash: Foydalanuvchi tomonidan boshqariladigan maʼlumotlarni koʻrsatishdan oldin xavfsiz shaklga aylantiring. HTML tanasi uchun HTML ob'ekt kodlashidan foydalaning va ushbu maxsus kontekstlar uchun mos JavaScript yoki CSS kodlash [S1][S2].
  • Kirish vaqtida filtrlash: Kutilayotgan kiritish formatlari uchun qatʼiy ruxsat etilgan roʻyxatlarni kiriting va [S1][S2] ga mos kelmaydigan har qanday narsani rad eting.
  • Xavfsizlik sarlavhalaridan foydalaning: JavaScript [S2] orqali kirishni oldini olish uchun seans kukilarida HttpOnly bayrog‘ini o‘rnating. Brauzerlar javoblarni [S1] bajariladigan kod sifatida noto‘g‘ri talqin qilmasligiga ishonch hosil qilish uchun Content-Type va X-Content-Type-Options: nosniff dan foydalaning.
  • Kontent xavfsizligi siyosati (CSP): Skriptlarni yuklash va amalga oshirish mumkin bo'lgan manbalarni cheklash uchun kuchli CSP ni o'rnating, bu esa chuqur himoya qatlamini ta'minlaydi.

FixVibe buni qanday sinovdan o'tkazadi

FixVibe XSS ni [S1] o‘rnatilgan skanerlash metodologiyalariga asoslangan ko‘p qatlamli yondashuv orqali aniqlay oladi:

  • Passiv skanerlash: XSS ZXCVFIXVIBETOKEN2ZXVni yumshatish uchun mo‘ljallangan Content-Security-Policy yoki X-Content-Type-Options kabi etishmayotgan yoki zaif xavfsizlik sarlavhalarini aniqlash.
  • Faol zondlar: [S1] to‘g‘ri kodlanmagan holda javob korpusida aks ettirilganligini aniqlash uchun URL parametrlari va shakl maydonlariga noyob, zararli bo‘lmagan alfanumerik satrlarni kiritish.
  • Repo skanerlari: ZVIXBETOKEN ning umumiy koʻrsatkichlari boʻlgan innerHTML, innerHTML yoki setTimeout kabi ishonchsiz maʼlumotlar bilan ishlovchi “sink”lar uchun mijoz tomonidan JavaScript-ni tahlil qilish. [S1].