Impakt
En Ugräifer kann sensibel, authentifizéiert Donnéeë vu Benotzer vun enger vulnerabeler Applikatioun [S2] klauen. Wann e Benotzer eng béiswëlleg Websäit besicht wärend hien an déi vulnerabel App ageloggt ass, kann de béisaarteg Site Cross-Origine Ufroe fir d'API vun der App maachen an d'Äntwerten [S1][S2] liesen. Dëst kann zum Vol vu privaten Informatioune féieren, dorënner Benotzerprofile, CSRF Tokens oder privat Messagen [S2].
Root Ursaach
CORS ass en HTTP-Header baséiert Mechanismus deen Server erlaabt ze spezifizéieren wéi eng Originen (Domain, Schema oder Port) erlaabt sinn Ressourcen [S1] ze lueden. Schwachstelle entstinn normalerweis wann d'CORS Politik vun engem Server ze flexibel ass oder schlecht implementéiert [S2]:
- Reflected Origin Header: E puer Server liesen den
OriginHeader vun enger Client Ufro an echo et zréck an denAccess-Control-Allow-Origin(ACAO) Äntwert Header [S2]. Dëst erlaabt effektiv all Websäit Zougang zu der Ressource [S2]. - Falschkonfiguréiert Wildcards: Wärend d'
*Wildcard erlaabt all Hierkonft Zougang zu enger Ressource, et kann net fir Ufroe benotzt ginn déi Umeldungsinformatiounen erfuerderen (wéi Cookien oder Autorisatiounsheaders) [S3]. D'Entwéckler probéieren dacks dëst ze ëmgoen andeems Dir den ACAO Header dynamesch generéiert baséiert op der Ufro [S2]. - Whitelisting 'null': E puer Applikatiounen Whitelist den
nullUrspronk, deen duerch ëmgeleet Ufroen oder lokal Dateien ausgeléist ka ginn, wat et erlaabt béiswëlleg Siten sech alsnullHierkonft ze verkleeden fir Zougang ZXCVFIXVIBETOKEN2ZVFXZVIX. - Parsing Feeler: Feeler am Regex oder String Matching beim Validéiere vum
OriginHeader kënnen Ugräifer erlaben Domainen wéitrusted-domain.com.attacker.com[S2] ze benotzen.
Et ass wichteg ze notéieren datt CORS kee Schutz géint Cross-Site Request Forgery (CSRF) [S2] ass.
Beton Fixes
- Benotzt eng statesch Whitelist: Vermeit dynamesch Generéiere vum
Access-Control-Allow-OriginHeader vumOriginHeader [S2] vun der Ufro. Amplaz, vergläicht den Urspronk vun der Ufro géint eng hardcoded Lëscht vu vertrauenswürdege Domainen [S3]. - Vermeit den 'null' Hierkonft: Gitt ni
nullan Ärer Wäisslëscht vun erlaabten Originen [S2]. - Umeldungsinformatioune beschränken: Setzt nëmmen
Access-Control-Allow-Credentials: truewann absolut néideg fir déi spezifesch Cross-Origine Interaktioun [S3]. - Benotz richteg Validatioun: Wann Dir verschidde Originen ënnerstëtzen musst, gitt sécher datt d'Validatiounslogik fir den
OriginHeader robust ass a kann net vun Ënnerdomainen oder ähnlech ausgesinnende Domainen [S2] ëmgoen.
Wéi FixVibe Tester fir et
FixVibe enthält elo dëst als gated aktive Scheck. No Domain Verifizéierung schéckt active.cors API Ufroe mat engem syntheteschen Ugräifer an iwwerpréift CORS Äntwert Header. Et bericht reflektéiert arbiträr Hierkonft, Wildcard credentialed CORS, a breet oppen CORS op net-ëffentlechen API Endpunkte wärend ëffentlech Verméigen Kaméidi vermeiden.
