FixVibe
Covered by FixVibehigh

Cross-Site Scripting (XSS) haavoittuvuuksien havaitseminen ja estäminen

Cross-Site Scripting (XSS) tapahtuu, kun sovellus sisältää epäluotettavaa tietoa verkkosivulla ilman asianmukaista vahvistusta tai koodausta. Tämän ansiosta hyökkääjät voivat suorittaa haitallisia skriptejä uhrin selaimessa, mikä johtaa istunnon kaappaamiseen, luvattomiin toimiin ja arkaluonteisten tietojen paljastamiseen.

CWE-79

Vaikutus

Hyökkääjä, joka hyödyntää onnistuneesti Cross-Site Scripting (XSS) haavoittuvuutta, voi naamioitua uhrikäyttäjäksi, suorittaa minkä tahansa toiminnon, johon käyttäjä on valtuutettu, ja käyttää mitä tahansa käyttäjän tietoja [S1]. Tämä sisältää istuntoevästeiden varastamisen tilien kaappaamiseksi, kirjautumistietojen kaappaamisen väärennettyjen lomakkeiden avulla tai virtuaalisen turmelemisen [S1][S2]. Jos uhrilla on järjestelmänvalvojan oikeudet, hyökkääjä voi saada täyden hallinnan sovelluksesta ja sen tiedoista [S1].

Perussyy

XSS tapahtuu, kun sovellus vastaanottaa käyttäjän ohjattavan syötteen ja sisällyttää sen verkkosivulle ilman asianmukaista neutralointia tai koodausta [S2]. Tämän ansiosta uhrin selain voi tulkita syötteen aktiiviseksi sisällöksi (JavaScript) ja kiertää samaa alkuperäkäytäntöä, joka on suunniteltu eristämään verkkosivustot toisistaan ​​[S1][S2].

Haavoittuvuustyypit

  • Heijastunut XSS: Haitalliset skriptit heijastuvat verkkosovelluksesta uhrin selaimeen, tyypillisesti URL-parametrin [S1] kautta.
  • Tallennettu XSS: Skripti tallennetaan pysyvästi palvelimelle (esim. tietokantaan tai kommenttiosaan) ja toimitetaan käyttäjille myöhemmin [S1][S2].
  • DOM-pohjainen XSS: Haavoittuvuus on kokonaan asiakaspuolen koodissa, joka käsittelee tietoja epäluotettavista lähteistä vaarallisella tavalla, kuten kirjoittamalla tiedostoon innerHTML [S1].

Betonikorjauksia

  • Koodata tiedot ulostulossa: Muunna käyttäjän ohjattavat tiedot turvalliseen muotoon ennen sen hahmontamista. Käytä HTML-entiteettikoodausta HTML-tekstiin ja asianmukaista JavaScript- tai CSS-koodausta kyseisiin yhteyksiin [S1][S2].
  • Suodata syöttö saapuessa: Ota käyttöön tiukat sallittujen luettelot odotetuille syöttömuodoille ja hylkää kaikki, jotka eivät ole [S1][S2] mukaisia.
  • Käytä suojausotsikoita: Aseta istunnon evästeiden lippu HttpOnly estääksesi pääsyn JavaScriptin [S2] kautta. Käytä koodia Content-Type ja X-Content-Type-Options: nosniff varmistaaksesi, että selaimet eivät tulkitse vastauksia väärin suoritettavana koodina [S1].
  • Sisällön suojauskäytäntö (CSP): Ota käyttöön vahva CSP rajoittaaksesi lähteitä, joista komentosarjoja voidaan ladata ja suorittaa, tarjoten syvällisen suojakerroksen [S1]ZBXVFIX.

Kuinka FixVibe testaa sitä

FixVibe voi havaita XSS monikerroksisen lähestymistavan avulla, joka perustuu vakiintuneisiin skannausmenetelmiin [S1]:

  • Passiiviset tarkistukset: Puuttuvien tai heikkojen suojausotsikoiden, kuten Content-Security-Policy tai X-Content-Type-Options, tunnistaminen, jotka on suunniteltu vähentämään XSS [S1].
  • Active Probes: Ainutlaatuisten, ei-haitallisten aakkosnumeeristen merkkijonojen lisääminen URL-parametreihin ja lomakekenttiin sen määrittämiseksi, näkyvätkö ne vastauksen rungossa ilman asianmukaista koodausta [S1].
  • Repo-tarkistukset: Asiakaspuolen JavaScriptin analysointi "nielujen" varalta, jotka käsittelevät epäluotettavaa dataa epäturvallisesti, kuten innerHTML, document.write tai setTimeout, jotka ovat yleisiä ZVICCENCVF-pohjaisia ZVICCVFX-indikaattoreita. [S1].