Indvirkning
En angriber, der med succes udnytter en sårbarhed på tværs af websteder (XSS), kan udgive sig som en offerbruger, udføre enhver handling, som brugeren er autoriseret til at udføre, og få adgang til enhver af brugerens data [S1]. Dette inkluderer at stjæle sessionscookies for at kapre konti, indfange login-legitimationsoplysninger gennem falske formularer eller udføre virtuel defacement [S1][S2]. Hvis offeret har administrative rettigheder, kan angriberen få fuld kontrol over applikationen og dens data [S1].
Grundårsag
XSS opstår, når en applikation modtager brugerkontrollerbar input og inkluderer den på en webside uden korrekt neutralisering eller kodning [S2]. Dette gør det muligt at tolke input som aktivt indhold (JavaScript) af offerets browser, og omgå Samme Origin Policy designet til at isolere websteder fra hinanden [S1][S2].
Sårbarhedstyper
- Afspejlet XSS: Ondsindede scripts afspejles fra en webapplikation til ofrets browser, typisk via en URL-parameter [S1].
- Gemt XSS: Scriptet gemmes permanent på serveren (f.eks. i en database eller kommentarsektion) og serveres til brugere senere [S1][S2].
- DOM-baseret XSS: Sårbarheden findes udelukkende i kode på klientsiden, der behandler data fra en ikke-pålidelig kilde på en usikker måde, såsom at skrive til
innerHTML[S1].
Konkrete rettelser
- Kod data ved output: Konverter brugerkontrollerbare data til en sikker form, før de gengives. Brug HTML-entitetskodning til HTML-kroppen og passende JavaScript- eller CSS-kodning til de specifikke kontekster [S1][S2].
- Filtrer input ved ankomst: Implementer strenge tilladelseslister for forventede inputformater og afvis alt, der ikke er i overensstemmelse med [S1][S2].
- Brug sikkerhedsoverskrifter: Indstil
HttpOnly-flaget på sessionscookies for at forhindre adgang via JavaScript [S2]. BrugContent-TypeogX-Content-Type-Options: nosnifffor at sikre, at browsere ikke fejlfortolker svar som eksekverbar kode [S1]. - Indholdssikkerhedspolitik (CSP): Implementer en stærk CSP for at begrænse de kilder, hvorfra scripts kan indlæses og udføres, hvilket giver et dybdegående forsvarslag ZXCVIXVIBETOKEN0ZXCVZXCVFIXXVIBETOKEN1.
Hvordan FixVibe tester for det
FixVibe kunne detektere XSS gennem en flerlagstilgang baseret på etablerede scanningsmetoder [S1]:
- Passive scanninger: Identifikation af manglende eller svage sikkerhedsheadere som
Content-Security-PolicyellerX-Content-Type-Options, der er designet til at afbøde XSS [S1]. - Aktive sonder: Injicerer unikke, ikke-ondsindede alfanumeriske strenge i URL-parametre og formularfelter for at bestemme, om de afspejles i svarteksten uden korrekt kodning [S1].
- Repo-scanninger: Analyserer JavaScript på klientsiden for "sinks", der håndterer ikke-pålidelige data på en usikker måde, såsom
innerHTML,document.writeellersetTimeout, som er almindelige indikatorer for 4. CVFIXVIBETOKEN0ZXCV. [S1].
