FixVibe
Covered by FixVibehigh

CORS Yanlış Konfiqurasiya: Həddindən artıq icazə verən siyasətlərin riskləri

Cross-Origin Resource Sharing (CORS) Eyni Mənşə Siyasətini (SOP) rahatlaşdırmaq üçün nəzərdə tutulmuş brauzer mexanizmidir. Müasir veb proqramlar üçün lazım olsa da, düzgün olmayan tətbiqetmə (məsələn, sorğuçunun Origin başlığını əks etdirmək və ya "null" mənşəyi ağ siyahıya salmaq kimi, zərərli saytların şəxsi istifadəçi məlumatlarını sındırmasına icazə verə bilər.

CWE-942

Təsir

Təcavüzkar həssas [S2] tətbiqinin istifadəçilərindən həssas, təsdiqlənmiş məlumatları oğurlaya bilər. Əgər istifadəçi həssas proqrama daxil olarkən zərərli vebsayta daxil olarsa, zərərli sayt proqramın API-yə mənşəli sorğular edə və [S1][S2] cavablarını oxuya bilər. Bu, şəxsi məlumatların, o cümlədən istifadəçi profilləri, CSRF nişanları və ya şəxsi mesajlar [S2] oğurlanmasına səbəb ola bilər.

Kök Səbəb

CORS serverlərə [S1] resurslarını yükləmək üçün hansı mənşələrin (domen, sxem və ya port) icazə verildiyini müəyyən etməyə imkan verən HTTP başlığına əsaslanan mexanizmdir. Zəifliklər adətən serverin CORS siyasəti çox çevik olduqda və ya zəif tətbiq edildikdə yaranır: [S2]:

  • Mənşəyi əks etdirən başlıq: Bəzi serverlər Origin başlığını müştəri sorğusundan oxuyur və onu Access-Control-Allow-Origin (ACAO) cavab başlığı [S2] ilə əks etdirir. Bu, istənilən veb-sayta [S2] resursuna daxil olmaq imkanı verir.
  • Səhv konfiqurasiya edilmiş Joker işarələr: * joker simvolu hər hansı mənbəyə resursa daxil olmağa icazə versə də, o, etimadnamə tələb edən sorğular üçün (kukilər və ya Avtorizasiya başlıqları) [S3] üçün istifadə edilə bilməz. Tərtibatçılar tez-tez [S2] sorğusu əsasında ACAO başlığını dinamik şəkildə yaradaraq bundan yan keçməyə çalışırlar.
  • Ağ siyahıya 'boş': Bəzi proqramlar yönləndirilmiş sorğular və ya yerli fayllar tərəfindən işə salına bilən null mənşəyini ağ siyahıya salır və zərərli saytlara giriş əldə etmək üçün null mənşəyi kimi maskalanmağa imkan verir. [S2][S3].
  • Ayrışdırma Xətaları: Origin başlığını təsdiq edərkən regex və ya sətir uyğunluğundakı səhvlər təcavüzkarlara trusted-domain.com.attacker.com [S2] kimi domenlərdən istifadə etməyə icazə verə bilər.

Qeyd etmək vacibdir ki, CORS Saytlararası Sorğu Saxtakarlığına (CSRF) [S2] qarşı müdafiə deyil.

Beton Təmirləri

  • Statik Ağ Siyahıdan istifadə edin: Sorğunun Origin [S2] başlığından Access-Control-Allow-Origin başlığını dinamik şəkildə yaratmaqdan çəkinin. Bunun əvəzinə sorğunun mənşəyini [S3] etibarlı domenlərin sərt kodlu siyahısı ilə müqayisə edin.
  • "Boş" mənşədən çəkinin: null-ni icazə verilən mənşələrin ağ siyahısına [S2] heç vaxt daxil etməyin.
  • Etibarnamələri məhdudlaşdırın: Access-Control-Allow-Credentials: true-ni yalnız spesifik mənşəli qarşılıqlı əlaqə [S3] üçün tamamilə lazım olduqda təyin edin.
  • Düzgün Təsdiqləmədən istifadə edin: Birdən çox mənşəyi dəstəkləməlisinizsə, Origin başlığı üçün doğrulama məntiqinin möhkəm olduğundan və [S2] altdomenləri və ya oxşar görünən domenlər tərəfindən yan keçə bilməyəcəyindən əmin olun.

FixVibe bunu necə sınaqdan keçirir

FixVibe indi bunu qapalı aktiv yoxlama kimi ehtiva edir. Domen yoxlandıqdan sonra active.cors sintetik təcavüzkar mənşəli eyni mənşəli API sorğuları göndərir və CORS cavab başlıqlarını nəzərdən keçirir. O, ictimai aktiv səs-küyünün qarşısını alaraq qeyri-ictimai API son nöqtələrində ixtiyari mənşələri, joker xarakterli etimadnaməyə malik CORS və geniş açıq CORS-ni əks etdirən hesabatlar.