Mitä XSS tarkoittaa?

XSS on lyhenne sanoista Cross-Site Scripting. Se on yksi yleisimmistä injektiohaavoittuvuuksista. Tästä ei taida valitettavasti olla suomenkielistä vastinetta, joten käytän tekstin aikana tuota XSS lyhennettä.

On olemassa kolmea erilaista XSS-haavoittuvuutta:
🌸 Reflected ("heijastettu")
🌸 Stored ("tallennettu")
🌸 DOM

Kaikille näille on yhteistä se, että hyökkääjä pystyy ajamaan omaa JavaScript-koodia sivustolla, jossa on tällainen haavoittuvuus.

Heijastetussa XSS:ssä hyökkääjä pystyy ajamaan JavaScript-koodia esimerkiksi syöttämällä sitä URL parametreihin. (Kuva 1)

Kuva 1: Heijastettu XSS

Tallennettu XSS tapahtuu niin, että hyökkääjä voi ajaa JavaScript-koodia, joka tallentuu palveluun. Esimerkiksi väärin konfiguroitu kommenttikenttä voisi olla tällainen. (Kuva 2 ja 3)

Kuva 2: Tallennettu XSS

Kuva 3: Tallennettu XSS

Kuvien esimerkit on otettu Portswiggerin XSS labroista.

DOM on vähän hankalasti selitettävä joten kannattaa siitä lukea muualta tarkemmin, mutta ajatuksena on että hyökkääjä voi muokata sivustolla olevaa koodia niin, että siitä aiheutuu XSS.

Pahimmillaan hyökkääjä voi saada haltuunsa käyttäjän istunnon palvelussa.

Kuinka XSS-haavoittuvuuksilta suojaudutaan?

Kuten tietoturvassa yleensäkin, suojautuminen XSS-haavoittuvuuksilta tapahtuu usealla tasolla:

🌸 Content-Security-Policy otsake sivuston kutsuissa vähentää oikein asetettuna XSS vakavuutta.

🌸 Käyttäjän syöttämä teksti tulisi filteröidä. Eli esimerkiksi nimi-kenttä verkkokaupan tilauksessa ei tarvitse muuta kuin kirjaimia ja numeroita, erikoissymbolit kuten < ja > tulisi filtteröidä pois.

🌸 Käytä valmiita kirjastoja, jotka hoitavat esimerkiksi käyttäjän syöttämän tekstin enkoodauksen.

Mistä voin lukea lisää aiheesta?

Lisätietoa:
OWASP Cross Site Scripting (XSS)
OWASP Cross Site Scripting Prevention Cheat Sheet

Tutoriaaleja:
Englanniksi: Portswigger Academy
Suomeksi: Hakatemia

Yhteenveto

Työskentelen tietoturva-asiantuntijana 2NS:llä. Ota mun minjahakkeroi-tilit seurantaan Instagramissa ja Threadsissä, jos haluat nähdä enemmän työstäni hyvishakkerina!

Author Of article : minjahakkeroi Read full article