HAKATEMIA
05XSS - Syventävä

XSS JavaScript-merkkijonoissa 1

Helppo45MIN

*Tässä moduulissa hyväksikäytämme harjoituskohteessa olevaa XSS-haavoittuvuutta, joten voit käynnistää alla olevan tehtävän ja toistaa vaiheet omassa tahdissa.

XSS-haavoittuvuuksia voi usein syntyä, jos käyttäjän hallinnassa olevaa syötettä käsitellään tai käytetään turvattomasti sovelluksen omassa JavaScript-koodissa. Verkkosovelluksia testatessa onkin tärkeää ymmärtää sekä varmistaa selainpuolella tapahtuvan JavaScript-koodin toiminta.

Haavoittuvuuden löytäminen

Aloitamme tutkimalla sovelluksessa olevia toiminallisuuksia ja huomaamme nopeasti, että sovellus käyttää hakukentässä syötettyjä arvoja JavaScript-koodin merkkijonona.

*Hakukentän arvo heijastetaan ****search ****parametrissa sekä sovelluksen JavaScript-koodissa, ****searchTerm ***nimisessä merkkijonossa.

Jatkamme analyysia katsomalla miten sovellus käsittelee erikoismerkkejä. Tarkoituksemme on yrittää rikkoa merkkijonon rakenne siten, että voimme kirjoittaa omaa JavaScript-koodia merkkijonon jälkeen. Kokeilemme seuraavanlaista syötettä.

JAVASCRIPT
1'; const omaparametri='

*Voimme käyttää tähän suoraan URL-osoitteessa käytettyä ****search ***parametria.

Onnistuimme määrittämään oman parametrin olemassa olevan koodin sekaan. Tämä tarkoittaa, että voimme kirjoittaa omaa JavaScript-koodia käyttämällä search parametria. Sovellus on haavoittuvainen XSS-hyökkäykselle.

Huomaamme, että sovellus ei formatoi tai estä heittomerkkejä oikein, mikä mahdollistaa merkkijonosta pakenemisen sekä oman JavaScript-koodin lisäämisen olemassa olevan koodin sisään.

Varmistamme myös, että hyväksyykö sovellus HTML-koodissa käytettyjen erikoismerkkien käytön seuraavanlaisella syötteellä.

JAVASCRIPT
1';</script>

*Huomaa, että sovellus formatoi syötetyt ****< ****ja ****> ***merkit oikein, jolloin selaimeen palautettu teksti sisältää HTML-koodatut versiot merkeistä.

Sovellus näyttää estävän tyypilliset XSS-haavoittuvuuksissa käytetyt erikoismerkit, joten joudumme käyttämään ensimmäisenä löydettyä tapaa suorittaa XSS-hyökkäys. Hyvänä tapana on vielä tuplavarmistaa haavoittuvuus aiheuttamalla hälytyslaatikko selaimessa.

JavaScript-koodissa // merkki-yhdistelmä tarkoittaa kommettia, jolloin alla oleva syöte kommentoi muun samalla rivillä olevan koodin pois. Tämä ei ole pakollista, mutta helpottaa lopullisen haittakoodin rakentamista.

JAVASCRIPT
1'; alert('xss'); //

Huomio, kuinka // merkit kommentoivat muun koodin pois, eikä meidän tarvitse murehtia mahdollisista virheistä, joita meidän syötteestä voisi koitua.

1 / 3
Hakatemia Pro

Hakkeroinnin oppiminen alkaa tästä

Sadat interaktiiviset kurssit, virtuaalilabrat ja CTF-haasteet selaimessasi. Aloita ilmainen kokeilu ilman korttitietoja.