FixVibe
Covered by FixVibehigh

CORS Misstillingar: Hættan á of leyfilegum reglum

Cross-Origin Resource Sharing (CORS) er vafrakerfi sem er hannað til að slaka á Same-Origin Policy (SOP). Þó að það sé nauðsynlegt fyrir nútíma vefforrit, getur óviðeigandi útfærsla – eins og að enduróma upprunahaus umsækjanda eða að setja „null“ upprunann á hvítlista – leyft skaðlegum vefsvæðum að síast út einkanotendagögn.

CWE-942

Áhrif

Árásarmaður getur stolið viðkvæmum, staðfestum gögnum frá notendum viðkvæms forrits [S2]. Ef notandi heimsækir skaðlega vefsíðu á meðan hann er skráður inn í viðkvæma appið getur skaðlega vefsvæðið lagt fram beiðnir um krossuppruna til API forritsins og lesið svörin [S1][S2]. Þetta getur leitt til þjófnaðar á einkaupplýsingum, þar á meðal notendasniðum, CSRF táknum eða einkaskilaboðum [S2].

Orsök

CORS er HTTP-haus byggt vélbúnaður sem gerir netþjónum kleift að tilgreina hvaða uppruna (lén, kerfi eða gátt) er heimilt að hlaða auðlindum [S1]. Veikleikar koma venjulega upp þegar CORS stefna netþjóns er of sveigjanleg eða illa útfærð [S2]:

  • Reflected Origin Header: Sumir netþjónar lesa Origin hausinn úr beiðni viðskiptavinar og enduróma hann aftur í Access-Control-Allow-Origin (ACAO) svarhaus [S2]. Þetta gerir hvaða vefsíðu sem er í raun kleift að fá aðgang að auðlindinni [S2].
  • Misstillt algildiskort: Þó að * jokertáknið leyfi hvaða uppruna sem er að fá aðgang að auðlind, er ekki hægt að nota það fyrir beiðnir sem krefjast skilríkja (eins og fótspora eða heimildahausa) [S3]. Hönnuðir reyna oft að komast framhjá þessu með því að búa til ACAO hausinn á kraftmikinn hátt byggt á beiðninni [S2].
  • Hvítlistun 'null': Sum forrit eru á undanþágulista null uppruna, sem hægt er að kveikja á með tilvísuðum beiðnum eða staðbundnum skrám, sem gerir skaðlegum vefsvæðum kleift að dulkast sem null uppruna til að fá aðgang ZXCVIXVIBETOKEN2ZVFXCVIZ.
  • Persing Errors: Mistök í regex eða strengjasamsvörun við staðfestingu á Origin hausnum geta gert árásarmönnum kleift að nota lén eins og trusted-domain.com.attacker.com [S2].

Það er mikilvægt að hafa í huga að CORS er ekki vörn gegn fölsun á milli vefsvæða (CSRF) [S2].

Steinsteypa lagfæringar

  • Notaðu kyrrstæðan hvítlista: Forðastu að búa til Access-Control-Allow-Origin haus frá Origin haus [S2] beiðninnar. Í staðinn skaltu bera saman uppruna beiðninnar við harðkóðaðan lista yfir traust lén [S3].
  • Forðastu „null“ uppruna: Aldrei settu null á hvítalistann þinn yfir leyfilegan uppruna [S2].
  • Takmarka skilríki: Stilltu aðeins Access-Control-Allow-Credentials: true ef brýna nauðsyn krefur fyrir tiltekna víxlverkun [S3].
  • Notaðu rétta löggildingu: Ef þú verður að styðja marga uppruna skaltu ganga úr skugga um að staðfestingarrökfræðin fyrir Origin hausinn sé traustur og ekki er hægt að fara framhjá undirlénum eða lénum sem líta svipað út [S2].

Hvernig FixVibe prófar það

FixVibe inniheldur þetta nú sem virk ávísun. Eftir staðfestingu á léni sendir active.cors API beiðnir með sama uppruna með tilbúnum árásaruppruna og fer yfir CORS svarhausa. Það greinir frá endurspegluðum handahófskenndum uppruna, CORS með jokertáknum og víðopnum CORS á óopinberum API endapunktum en forðast hávaða almenningseigna.