FixVibe
Covered by FixVibehigh

CORS Noto'g'ri konfiguratsiya: Haddan tashqari ruxsat beruvchi siyosatlar xavfi

Oʻzaro kelib chiqish manbalarini almashish (CORS) bir xil kelib chiqish siyosatini (SOP) yumshatish uchun moʻljallangan brauzer mexanizmi. Zamonaviy veb-ilovalar uchun zarur bo'lsa-da, noto'g'ri amalga oshirish (masalan, so'rovchining Origin sarlavhasini aks ettirish yoki "null" kelib chiqishini oq ro'yxatga olish - zararli saytlarga shaxsiy foydalanuvchi ma'lumotlarini o'tkazib yuborishga imkon beradi.

CWE-942

Ta'sir

Buzg'unchi zaif [S2] ilovasi foydalanuvchilaridan nozik, autentifikatsiya qilingan ma'lumotlarni o'g'irlashi mumkin. Agar foydalanuvchi zaif ilovaga kirgan holda zararli veb-saytga kirsa, zararli sayt ilovaning API ga oʻzaro kelib chiqish soʻrovlarini yuborishi va [S1][S2] javoblarini oʻqishi mumkin. Bu shaxsiy ma'lumotlar, jumladan, foydalanuvchi profillari, CSRF tokenlari yoki shaxsiy xabarlar [S2] o'g'irlanishiga olib kelishi mumkin.

Asosiy sabab

CORS HTTP sarlavhasiga asoslangan mexanizm boʻlib, serverlarga [S1] resurslarini yuklash uchun qaysi manbalar (domen, sxema yoki port) ruxsat etilganligini belgilash imkonini beradi. Zaifliklar odatda serverning CORS siyosati juda moslashuvchan yoki yomon amalga oshirilgan [S2] bo'lsa paydo bo'ladi:

  • Origin sarlavhasi aks ettirilgan: Ba'zi serverlar mijoz so'rovidan Origin sarlavhasini o'qiydi va uni Access-Control-Allow-Origin (ACAO) javob sarlavhasi [S2]da aks ettiradi. Bu har qanday veb-saytga [S2] resursiga kirish imkonini beradi.
  • Noto'g'ri sozlangan joker belgilar: * joker belgisi har qanday manbaga resursga kirishga ruxsat bergan bo'lsa-da, uni hisobga olish ma'lumotlarini (masalan, cookie fayllari yoki avtorizatsiya sarlavhalari) [S3] talab qiladigan so'rovlar uchun ishlatib bo'lmaydi. Ishlab chiquvchilar ko'pincha [S2] so'rovi asosida ACAO sarlavhasini dinamik ravishda yaratish orqali buni chetlab o'tishga harakat qilishadi.
  • Oq roʻyxatga “null”: Baʼzi ilovalar null manbasini oq roʻyxatga kiritadi, bu esa qayta yoʻnaltirilgan soʻrovlar yoki mahalliy fayllar orqali ishga tushirilishi mumkin, bu esa zararli saytlarga ruxsat olish uchun null manbasi sifatida maskarad qilish imkonini beradi. [S2][S3].
  • Tahlil qilish xatolari: Origin sarlavhasini tekshirishda regex yoki qatorni moslashtirishdagi xatolar tajovuzkorlarga trusted-domain.com.attacker.com [S2] kabi domenlardan foydalanishga ruxsat berishi mumkin.

Shuni ta'kidlash kerakki, CORS saytlararo so'rovlarni qalbakilashtirishdan (CSRF) [S2] himoyasi emas.

Beton tuzatishlar

  • Statik oq roʻyxatdan foydalaning: Access-Control-Allow-Origin sarlavhasini soʻrovning Origin [S2] sarlavhasidan dinamik ravishda yaratishdan saqlaning. Buning o'rniga, so'rovning kelib chiqishini [S3] ishonchli domenlarning qattiq kodlangan ro'yxati bilan solishtiring.
  • "Nol" kelib chiqishidan saqlaning: null ni hech qachon ruxsat etilgan manbalar roʻyxatiga [S2] kiritmang.
  • Hisob maʼlumotlarini cheklash: Access-Control-Allow-Credentials: true faqat oʻzaro bogʻliqlik [S3] uchun zarur boʻlsagina oʻrnating.
  • To‘g‘ri tekshirishdan foydalaning: Agar bir nechta manbalarni qo‘llab-quvvatlashingiz kerak bo‘lsa, Origin sarlavhasi uchun tekshirish mantig‘i mustahkam va subdomenlar yoki shunga o‘xshash ko‘rinishdagi [S2] domenlari tomonidan chetlab o‘tib bo‘lmasligiga ishonch hosil qiling.

FixVibe buni qanday sinovdan o'tkazadi

FixVibe endi buni faol tekshiruv sifatida o'z ichiga oladi. Domen tekshirilgandan so‘ng, active.cors sintetik hujumchi kelib chiqishi bilan bir xil kelib chiqishi API so‘rovlarini yuboradi va CORS javob sarlavhalarini ko‘rib chiqadi. Unda ommaviy bo‘lmagan API so‘nggi nuqtalarida o‘zboshimchalik bilan kelib chiqishi, joker belgilar bilan tasdiqlangan CORS va keng ochiq CORS davlat aktivlari shovqinidan qochadi.