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