FixVibe
Covered by FixVibehigh

CORS Wankonfigurasie: Risiko's van té permissiewe beleide

Cross-Origin Resource Sharing (CORS) is 'n blaaiermeganisme wat ontwerp is om die Same-Origin Policy (SOP) te verslap. Alhoewel dit nodig is vir moderne webtoepassings, kan onbehoorlike implementering—soos die eggo van die versoeker se Oorsprong-opskrif of die witlys van die 'nul'-oorsprong – kwaadwillige werwe toelaat om privaat gebruikerdata te eksfiltreer.

CWE-942

impak

'n Aanvaller kan sensitiewe, geverifieerde data van gebruikers van 'n kwesbare toepassing [S2] steel. As 'n gebruiker 'n kwaadwillige webwerf besoek terwyl hy by die kwesbare toepassing aangemeld is, kan die kwaadwillige werf kruisoorsprongversoeke na die toepassing se API rig en die antwoorde [S1][S2] lees. Dit kan lei tot die diefstal van privaat inligting, insluitend gebruikersprofiele, CSRF-tokens, of privaat boodskappe [S2].

Oorsaak

CORS is 'n HTTP-kop-gebaseerde meganisme wat bedieners toelaat om te spesifiseer watter oorsprong (domein, skema of poort) toegelaat word om hulpbronne [S1] te laai. Kwesbaarhede ontstaan tipies wanneer 'n bediener se CORS-beleid te buigsaam of swak geïmplementeer is [S2]:

  • Gereflekteerde Oorsprongopskrif: Sommige bedieners lees die Origin-opskrif vanaf 'n kliëntversoek en eggo dit terug in die Access-Control-Allow-Origin (ACAO)-antwoordopskrif [S2]. Dit laat effektief enige webwerf toe om toegang tot die hulpbron [S2] te verkry.
  • Werklik gekonfigureerde jokertekens: Alhoewel die * jokerteken enige oorsprong toelaat om toegang tot 'n hulpbron te kry, kan dit nie gebruik word vir versoeke wat geloofsbriewe (soos koekies of magtigingsopskrifte) vereis nie [S3]. Ontwikkelaars probeer dit dikwels omseil deur die ACAO-opskrif dinamies te genereer gebaseer op die versoek [S2].
  • Witlys 'nul': Sommige toepassings witlys die null-oorsprong, wat deur herlei versoeke of plaaslike lêers geaktiveer kan word, wat toelaat dat kwaadwillige werwe as 'n null-oorsprong voordoen om toegang te verkry ZXCVIXVIBETOKEN2ZVFXCVIZ.
  • Ontleedfoute: Foute in regex of stringpassing wanneer die Origin-kopskrif bekragtig word, kan aanvallers toelaat om domeine soos trusted-domain.com.attacker.com [S2] te gebruik.

Dit is belangrik om daarop te let dat CORS nie 'n beskerming teen Cross-Site Request Forgery (CSRF) [S2] is nie.

Betonoplossings

  • Gebruik 'n statiese witlys: Vermy die dinamiese generering van die Access-Control-Allow-Origin-opskrif vanaf die versoek se Origin-opskrif [S2]. Vergelyk eerder die versoek se oorsprong met 'n hardgekodeerde lys van vertroude domeine [S3].
  • Vermy die 'nul' Oorsprong: Moet nooit null by jou witlys van toegelate oorsprong [S2] insluit nie.
  • Beperk geloofsbriewe: Stel slegs Access-Control-Allow-Credentials: true as dit absoluut noodsaaklik is vir die spesifieke kruisoorsprong-interaksie [S3].
  • Gebruik behoorlike validering: As jy veelvuldige oorspronge moet ondersteun, maak seker dat die valideringslogika vir die Origin-kopskrif robuust is en nie deur subdomeine of domeine wat soortgelyk lyk nie [S2] omseil kan word nie.

Hoe FixVibe daarvoor toets

FixVibe sluit dit nou as 'n omheinde aktiewe tjek in. Na domeinverifikasie stuur active.cors dieselfde-oorsprong API-versoeke met 'n sintetiese aanvalleroorsprong en hersien CORS-reaksieopskrifte. Dit rapporteer weerspieël arbitrêre oorsprong, wildcard-geloofwaardige CORS, en wyd-oop CORS op nie-openbare API eindpunte terwyl openbare bate geraas vermy word.