impak
'n Aanvaller wat 'n Cross-Site Scripting (XSS) kwesbaarheid suksesvol ontgin, kan hom as 'n slagoffergebruiker voordoen, enige handeling uitvoer wat die gebruiker gemagtig is om uit te voer, en toegang tot enige van die gebruiker se data [S1]. Dit sluit in die steel van sessiekoekies om rekeninge te kaap, die vaslegging van aanmeldbewyse deur middel van vals vorms, of die uitvoering van virtuele ontsierding [S1][S2]. As die slagoffer administratiewe voorregte het, kan die aanvaller volle beheer oor die toepassing en sy data verkry [S1].
Oorsaak
XSS vind plaas wanneer 'n toepassing gebruiker-beheerbare insette ontvang en dit in 'n webblad insluit sonder behoorlike neutralisering of enkodering [S2]. Dit laat toe dat die insette geïnterpreteer kan word as aktiewe inhoud (JavaScript) deur die slagoffer se blaaier, wat die Same Origin Policy omseil wat ontwerp is om webwerwe van mekaar te isoleer [S1][S2].
Kwesbaarheid Tipes
- Gereflekteer XSS: Kwaadwillige skrifte word deur 'n webtoepassing na die slagoffer se blaaier weerspieël, tipies via 'n URL-parameter [S1].
- Gestoor XSS: Die skrif word permanent op die bediener gestoor (bv. in 'n databasis of kommentaarafdeling) en word later aan gebruikers bedien [S1][S2].
- DOM-gebaseerde XSS: Die kwesbaarheid bestaan geheel en al in kliënt-kant-kode wat data vanaf 'n onbetroubare bron op 'n onveilige manier verwerk, soos om na
innerHTML[S1] te skryf.
Betonoplossings
- Enkodeer data op uitvoer: Skakel gebruiker-beheerbare data om in 'n veilige vorm voordat dit weergegee word. Gebruik HTML-entiteitkodering vir die HTML-liggaam, en toepaslike JavaScript- of CSS-kodering vir daardie spesifieke kontekste [S1][S2].
- Filter invoer by aankoms: Implementeer streng toelaatlyste vir verwagte invoerformate en verwerp enigiets wat nie aan [S1][S2] voldoen nie.
- Gebruik sekuriteitsopskrifte: Stel die
HttpOnly-vlag op sessiekoekies om toegang via JavaScript [S2] te verhoed. GebruikContent-TypeenX-Content-Type-Options: nosniffom te verseker dat blaaiers nie antwoorde verkeerd interpreteer as die uitvoerbare kode [S1] nie. - Inhoud sekuriteitsbeleid (CSP): Ontplooi 'n sterk CSP om die bronne te beperk waaruit skrifte gelaai en uitgevoer kan word, wat 'n verdediging-in-diepte laag ZXCVIXVIBETOKEN0ZXCVZXCVIXVIBETOKEN1ZXCVZXCVIXVIBETOKEN1 verskaf.
Hoe FixVibe daarvoor toets
FixVibe kan XSS opspoor deur middel van 'n veellaagde benadering gebaseer op gevestigde skanderingsmetodologieë [S1]:
- Passiewe skanderings: Identifiseer ontbrekende of swak sekuriteitsopskrifte soos
Content-Security-PolicyofX-Content-Type-Optionswat ontwerp is om XSS [S1] te versag. - Aktiewe sondes: Spuit unieke, nie-kwaadwillige alfanumeriese stringe in URL-parameters en vormvelde in om te bepaal of dit in die antwoordliggaam weerspieël word sonder behoorlike enkodering [S1].
- Repo-skanderings: Ontleed kliënt-kant JavaScript vir "sinks" wat onvertroude data onveilig hanteer, soos
innerHTML,document.write, ofsetTimeout, wat algemene aanwysers is van 4.CVFIXVIBETOKEN0ZXCV. [S1].
