FixVibe
Covered by FixVibehigh

CORS Mipangilio Mibaya: Hatari za Sera Zinazoruhusu Kupita Kiasi

Ushirikiano wa Rasilimali za Asili (CORS) ni utaratibu wa kivinjari ulioundwa kulegeza Sera ya Asili Same (SOP). Ingawa ni muhimu kwa programu za kisasa za wavuti, utekelezaji usiofaa--kama vile kurudia kichwa cha Asili cha mwombaji au kuorodhesha asili 'batili' - kunaweza kuruhusu tovuti hasidi kuchuja data ya kibinafsi ya mtumiaji.

CWE-942

Athari

Mshambulizi anaweza kuiba data nyeti, iliyothibitishwa kutoka kwa watumiaji wa programu hatarishi [S2]. Mtumiaji akitembelea tovuti hasidi akiwa ameingia kwenye programu hatarishi, tovuti hasidi inaweza kutuma maombi ya asili tofauti kwa API ya programu na kusoma majibu [S1][S2]. Hii inaweza kusababisha wizi wa maelezo ya faragha, ikiwa ni pamoja na wasifu wa mtumiaji, tokeni za CSRF, au ujumbe wa faragha [S2].

Chanzo Chanzo

CORS ni utaratibu unaotegemea HTTP-header ambao huruhusu seva kubainisha ni asili zipi (kikoa, mpango, au mlango) zinazoruhusiwa kupakia rasilimali [S1]. Athari za kiusalama kwa kawaida hutokea wakati sera ya CORS ya seva ni rahisi kubadilika au kutekelezwa vibaya [S2]:

  • Kichwa Cha Asili Kilichoakisiwa: Baadhi ya seva husoma kichwa cha Origin kutoka kwa ombi la mteja na kukitoa mwangwi katika kichwa cha jibu cha Access-Control-Allow-Origin (ACAO) [S2]. Hii inaruhusu tovuti yoyote kufikia rasilimali [S2].
  • Kadi Pori Zilizowekwa Vibaya: Ingawa kadi-mwitu ya * inaruhusu asili yoyote kufikia rasilimali, haiwezi kutumika kwa maombi ambayo yanahitaji vitambulisho (kama vile vidakuzi au vichwa vya Uidhinishaji) [S3]. Wasanidi programu mara nyingi hujaribu kukwepa hili kwa kuzalisha kwa nguvu kichwa cha ACAO kulingana na ombi [S2].
  • Kuidhinisha 'null': Baadhi ya programu zimeidhinisha asili ya null, ambayo inaweza kuanzishwa na maombi yaliyoelekezwa kwingine au faili za ndani, kuruhusu tovuti hasidi kujifanya kuwa null asili ili kupata ufikiaji ZXCVFIXVIBETOKEN2ZXZXCVBETOKEN2ZXZXCVBETOK.
  • Hitilafu za Uchanganuzi: Makosa katika ulinganishaji wa regex au kamba wakati wa kuhalalisha kichwa cha Origin inaweza kuruhusu washambuliaji kutumia vikoa kama vile trusted-domain.com.attacker.com [S2].

Ni muhimu kutambua kwamba CORS sio ulinzi dhidi ya Ughushi wa Ombi la Tovuti Msalaba (CSRF) [S2].

Marekebisho ya Zege

  • Tumia Orodha Isiyobadilika: Epuka kutengeneza kichwa cha Access-Control-Allow-Origin kutoka kwa kichwa cha ombi Origin [S2]. Badala yake, linganisha asili ya ombi dhidi ya orodha yenye misimbo ngumu ya vikoa vinavyoaminika [S3].
  • Epuka Asili ya 'null': Usiwahi kujumuisha null katika orodha yako iliyoidhinishwa ya asili zinazoruhusiwa [S2].
  • Zuia Kitambulisho: Weka tu Access-Control-Allow-Credentials: true ikiwa ni lazima kabisa kwa mwingiliano mahususi wa asili mtambuka [S3].
  • Tumia Uthibitishaji Sahihi: Iwapo ni lazima utumie asili nyingi, hakikisha kwamba mantiki ya uthibitishaji ya kichwa cha Origin ni thabiti na haiwezi kuepukwa na vikoa vidogo au vikoa vinavyofanana [S2].

Jinsi FixVibe inavyoifanyia majaribio

FixVibe sasa inajumuisha hii kama ukaguzi amilifu uliowekwa lango. Baada ya uthibitishaji wa kikoa, active.cors hutuma maombi ya asili moja API yenye asili ya mvamizi sanisi na kukagua vichwa vya majibu CORS. Inaripoti ilionyesha asili zisizo za kawaida, kadi-mwitu iliyoidhinishwa CORS, na CORS isiyo ya umma kwenye ncha zisizo za umma za API huku ikiepuka kelele za mali ya umma.