Cross Site Scripting
Cross Site Scripting
Cross Site Scripting
TEHNIKI FAKULTET
Odsjek: Elektrotehnika
Smjer: Informatika
Seminarski rad
1.UVOD ..................................................................................................................................... 1
2.SIGURNOST WEB APLIKACIJA I HISTORIJA XSS-a ..................................................... 2
3.XSS.......................................................................................................................................... 5
4.XSS RANJIVOSTI I VRSTE NAPADA ................................................................................ 7
4.1.DOM bazirani XSS napad ................................................................................................ 9
4.2.PERZISTENTNI XSS NAPAD ..................................................................................... 12
4.3.NEPERZISTENTNI XSS NAPAD ................................................................................ 15
5.ZATITA OD XSS NAPADA ............................................................................................. 18
6.PRAKTINI DIO ................................................................................................................. 21
6.1. Perzistentni XSS ............................................................................................................ 23
6.2.Neperzistentni XSS ........................................................................................................ 28
6.3. DOM bazirani XSS napad ............................................................................................. 31
6.4. Kradja kolaia .............................................................................................................. 33
7.ZAKLJUAK ....................................................................................................................... 35
8.LITERATURA ...................................................................................................................... 36
1.UVOD
U ovom seminarskom radu e biti opisana tema XSS(Cross-Site Scripting) napada. Bit e
rijei o sigurnosti web aplikacija openito i mjestu XSS napada u tom kontekstu. U radu su
opisane su glavne karakteristike XSS napada i izvrena je podjela istog gdje su detaljno
opisani svaki od pojedinih tipova napada.
Koritenje Weba openito kao i web aplikacija nosi sa sobom stanovite rizike i opasnosti za
korisnike. Pojavom i popularizacijom skriptnih jezika pogotovo JavaScripta javljaju se razne
mogunosti zlonamjernim korisnicima za realizaciju nekih zlonamjernih radnji. Jedna takva
konkretna realizacija prijetnje sigurnosti web aplikacijama je XSS napad koji predstavlja
jedan od najeih i najopasnijih napada na web aplikacije.
XSS je tehnika napada koja uslovno reeno prisiljava web stranice na prikaz malicioznog
koda, koji se tada izvrava u korisnikovom web browseru. Napad se izvrava na strani klijenta
i ciljana rtva je korisnik aplikacije.
Spomenute su neke od metoda zatite od ovakvog napada koji moe izazvati jako ozbiljne
posljedice kao to je npr. pristup povjerljivim financijskim podacima. U praktinom dijelu
rada prezentiran je nain realizacije XSS napada i metoda zatite od istog na OWASP-ovoj
DVWA(Damn Vulnerable Web App).
1
2.SIGURNOST WEB APLIKACIJA I HISTORIJA XSS-a
Web aplikacijama se pristupa preko mree putem web browsera (Web browser uitava i
pokree programski kod sa servera i podnosi zahtjeve za stranicama i akcijama) unutar kojeg
se jedan dio aplikacije izvodi. Kad govorimo o web aplikacijama govorimo o klijent/server
sistemima koji se izvravaju na klijentskoj i na serverskoj strani.
Svaki od tih slojeva nosi sigurnosne rizike i propuste koji se mogu iskoristiti. Ukoliko postoje
neke ranjivosti i nedostaci u razvoju aplikacije sve ove gradivne dijelove je mogue iskoristiti
za malverzaciju i napad na web aplikaciju. Jedan od takvih napada koji moe prouzrokovati
ozbiljne posljedice je i XSS (Cross-Site Scripting).
2
Cross-Site Scripting ranjivosti datiraju jo iz 1996. godine i vezane su poetak World Wide
Weba. Pojava e-trgovine, pojava i popularizacija JavaScript programskog jezika je omoguila
developerima kreiranje interaktivnijih web stranica ali isto tako i zlonamjernim korisnicima
mnoge nove mogunosti. JavaScript je skriptni jezik kojim moemo kreirati dinamike web
stranice. Izvodi se na klijentskom raunaru ,konkretno kad je rije o web aplikacijama u
njegovom pregledniku, te svi moderni preglednici podravaju JavaScript. JavaScript
omoguava developerima manju potrebu za komunikacijom sa serverom i samim time
smanjenje prometa ka serveru. Omoguava prije svega poveanu interaktivnost, zanimljivije i
bogatije suelje itd.
U razdoblju do 2005. godine veina sigurnosnih eksperata i developera nije pruala puno
znaaja i panje XSS-u. Fokus je bio na nekim drugim sigurnosnim problemima kao to su
virusi,crvi,botnet mree,prelijevanja spremnika itd.
U oktobru 2005. se pojavio XSS crv tzv. Samy Worm (drugi naziv; JS.Spacehero) koji je
dobio taj naziv po tvorcu Samyu Kamkaru. Crv se propagirao drutvenom mreom MySpace.
Smatra se jednim od najveih raunarskih crva u historiji. Bio je dizajniran na nain da se
irio mreom od profila do profila i tako je uspio u roku od 20 sati zaraziti preko milion
korisnika. Od tog sigurnosnog incidenta je svijet raunarske sigurnosti postao svjestan rizika i
opasnosti kakve napadi ovakve prirode nose sa sobom. Od tad pa do danas XSS je jedan od
najopasnijih i najeih napada na web aplikacije.1
1
S.Fogie,J.Grossman,R.Hansen,A.Rager,P.Petkov,XSS Attacks:Cross Site Scripting Exploits and Defense,
Syngress Publishing, 2007.
3
The Open Web Application Security Project (OWASP) je neprofitna organizacija koja daje
informacije o sigurnosti web aplikacija . OWASP od 2003. godine objavljuje listu deset
najveih rizika za web aplikacije. Ova lista je postala neformalni standard .
A1 Injection
A5 Security Misconfiguration
2
A10 Unvalidated Redirects and Forwards
Prema Top 10 iz 2010. godine XSS je bio na 2. mjestu. Moemo zakljuiti da XSS danas
predstavlja jako ozbiljnu prijetnju sigurnosti web aplikacija i da je jedan od najeih napada
na iste.
Koriste se akronimi XSS i CSS ali akronim XSS je uobiajen za Cross-Site Scripting iz
razloga postojanja akronima CSS (Cascading Style Sheets).
2
https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
4
3.XSS
XSS je tehnika napada koja na neki nain prisiljava web stranice na prikaz malicioznog
koda, koji se tada izvrava u korisnikovom web browseru. Napad se izvrava na strani klijenta
odnosno u u Web browseru a ne na serverskoj strani. Ciljana rtva je korisnik a ne server kao
npr. kod DDoS napada.
XSS je napad koji se odvija na web aplikacijama koje nisu adekvatno zatiene
odnosno imaju ranjivosti koje omoguuju napad
5
SLIKA 1: Grafiki prikaz XSS napada3
Opti opis XSS napada se moe vidjeti na prethodnoj slici. Tijek napada se moe opisati u
nekoliko koraka:
1. Zlonamjerni korisnik koristi neku formu web aplikacije kako bi umetnuo maliciozni
Javascript kod pomou kojeg moe pristupiti bazi web aplikacije
3. Pri odgovoru aplikacije rtvi ukljuuje se maliciozni JavaScript kod kao dio odgovora
rtvi odnosno korisniku aplikacije
4. rtvin preglednik izvrava malicioznu skriptu unutar odgovora kojeg prima od web
aplikacije i alje rtvine kolaie napadaevom serveru.
3
https://excess-xss.com/
6
Postavlja se pitanje ta to zapravo napada moe uinit ako uspije da izvri neki maliciozni
Javascript kod u rtvinom browseru. JavaScript ima ogranien pristup korisnikom
operativnom sistemu i fajlovima ali ipak postoje mnogi naini kako se payload napada moe
ispoljiti.
Jednom kad napada uspije u eksploatisanju XSS ranjivosti i stekne kontrolu nad
korisnikovim web browserom dobija mogunost obavljanja razliitih zlonamjernih radnji i
akcija. Kako zlonamjerni JavaScript kod ima pristup svim resursima kao i ostatak stranice
postoji mogunost da se ukradu kolaii koji se koriste za uvanje sesija i na taj nain
zlonamjerni korisnik moe ukrasti identitet tj. oponaati nekog legitimnog korisnika
aplikacije. Ako postoji mogunost krae identiteta postoji mogunost i promjene podataka
korisnikog rauna.
Napada ima mogunosti mijenjanja sadraja stranice,pregledavanja historije pretraivanja,
usmjeravanja web browsera na druge sadraje i lokacije,irenja internet crva, prosljeivanja
zlonamjernog sadraja od strane web aplikacije itd.
Takoer, pomou metoda socijalnog ininjeringa i razliitih vrsta obmana moe navesti
korisnika da mu omogui pristup kameri,mikrofonu itd.
XSS ranjivost je posljedica neadekvatne ocjene ispravnosti i filtriranja ulaznih podataka web
aplikacije. Svaka web stranica koja korisniku omoguuje interakciju odnosno koja doputa
unos nekih podataka,pretrage i sl. potencijalno sadri XSS ranjivost te se esto javlja kod
pretraivanja pojmova na web stranicama, kod unoenja podataka u razliite forme na web
stranicama itd.
Da bi Web pretraiva postao inficiran mora posjetiti neku stranicu koja sadri odreeni
JavaScript malware.
Postoji nekoliko naina kako se JavaScript malware moe nastaniti na nekoj stranici:
7
2. JavaScript malware je mogao dospjeti na stranicu usljed neke promjene zbog
sigurnosnog propusta u mrei ili u operativnom sistemu
3. XSS ranjivost je iskoritena i JavaScript malware je umetnut
4. rtva je mogla pokrenuti na specijalno kreiran neperzistentni ili DOM baziran XSS
link
Kod stavki 3. i 4. je potrebno da stranica ima neke XSS ranjivosti koje se mogu iskoristiti.
Slijedi primjer jednog jednostavnog koda stranice koji pokazuje kako JavaScript malware
moe biti ubaen unutar jednostavnog script taga pozvati maliciozni kod sa neke lokacije.
Korisnik dok posjeti ovakvu stranicu postae rtva payloada ove zlonamjerne skripte.
<html><body>
<title>Primjer stranice koja sadri JavaScript malware</title>
<h1>XSS Primjer</h1>
<script src=http://localhost/javascript_malware.js />
</body></html>
Ovi napadi se mogu preklapati u smislu da je neki XSS napad ima osobine npr. i DOM i
perzistentnog napada. Negdje od 2012. godine postoji se uvode 2 nova termina kao posljedica
tenji da se klasificiraju i organiziraju XSS napadi koji se mogu pojaviti:
Server XSS
Klijent XSS
8
Server XSS klasifikacija podrazumijeva HTML odgovor servera koji sadri neprovjerene
podatke. Moe postojati i perzistentni server XSS i neperzistentni server XSS.
Pored naziva DOM (eng. Document Object Model) bazirani XSS napad mogu se pronai i
nazivi lokalni XSS. Za razliku od ostalih tipova XSS ranjivosti, ovdje zlonamjerni skriptni
kod nije prethodno ugnijeden u neku dinamiki generiranu izlaznu web stranicu na strani
web posluitelja. Kod DOM baziranog XSS nedostatka sigurnosni problem je zapravo vezan
za nain na koji korisnikov preglednik interpretira ranjivu web stranicu u svom izvornom
obliku u kombinaciji sa zlonamjernim ulaznim podacima.
Kad je web stranica uitana web browser kreira Document Model Object stranice. DOM
predstavlja W3C standard. Definie nain pristupanja dokumentima. DOM je platforma i
interfejs koji je neovisan o programskom jeziku i omoguava programima i skriptama da
dinamiki pristupaju i mijenjaju sadraj,strukturu i izgled dokumenta. Razlikujemo XML
DOM(standardni model za XML dokumente), Core DOM(standardni model za sve tipove
dokumenata),HTML DOM(standard koji definie kako dohvatiti,promijeniti,dodati ili obrisati
HTML elemente).Sa HTML DOM-om JavaScript moe pristupiti i mijenjati sve elemente
HTML dokumenta odnosno dobija mogunost kreiranja dinamikog HTML-a. JavaScript
moe mijenjati,dodavati,brisati HTML elemente i atribute na stranici,upravljati CSS-om
stranice itd.
Kada se JavaScript kod, koji je ugnijeden unutar HTML sadraja web stranice, izvrava
unutar preglednika, preglednik automatski kreira nekoliko objekata koji predstavljaju DOM.
9
SLIKA 2: HTML DOM stablo objekata4
4
https://www.w3schools.com/js/js_htmldom.asp
10
Skriptnim kodom koji se izvrava na strani klijenta, web preglednici upravljaju pomou
objekata koji se nalaze u tzv. lokalnoj zoni, npr. na korisnikovom lokalnom vrstom disku.
Stoga se umetnuti zlonamjerni skriptni kod moe izvoditi na korisnikovom sustavu i to s
ovlastima korisnikovog web preglednika. Time se zaobilazi cjelokupna sigurnosna okolina na
strani klijenta (eng. sandbox), a ne samo domenske restrikcije web posluitelja to je
uobiajeno za ostale tipove XSS nedostataka.5
5
http://www.cert.hr/sites/default/files/CCERT-PUBDOC-2006-05-157.pdf
11
4.2.PERZISTENTNI XSS NAPAD
Trajni ili perzistentni XSS napad (eng. persistent) karakterie to to maliciozni JavaScript ili
neki drugi skriptni kod ostaje trajno spremljen na strani web servera te ga server moe umetati
u web stranice koje se korisniku alju kao odgovor na njegov HTTP zahtjev.
Ranjivosti na perzistentni XSS napad se javljaju kad se podaci koje korisnik daje spremaju
trajno na strani servera kao npr. u bazi podataka ili unutar sistema datoteka te se kasnije ti
podaci prikazuju korisnicima na web stranici bez prethodnog HTML kodiranja. Kasnije je
dovoljno da korisnik posjeti web stranicu koja sadri takav problematini kod koji nije
podvrgnut HTML kodiranju i da se maliciozni kod izvri u njegovom pregledniku.
Cilj napadaa je postaviti maliciozni kod na neke stranice koje su esto posjeivane pa ovaj
napad moe biti jako uinkovit kad su u pitanju drutvene mree koje imaju veliki promet i
gdje postoji mogunost za jako brzo irenje zaraze. Na takav nain napada moe ostvariti
veliki broj napada u relativno kratkom vremenu. Neki od uinkovitih naina su postavljanje
malicioznih kodova na forume ili u chat grupe gdje je omogueno slanje poruka u HTML
formatu. Kod ovakvih podruja za izvravanje XSS napada je jako bitan faktor socijalnog
ininjeringa.
Jednom kad napada uoi ranjivost odnosno uvidi da aplikacija ne provjerava na adekvatan
nain sadraj nekih polja ubacuje maliciozni JavaScript kod u to polje npr. polje za unos
korisnikog imena na nekoj drutvenoj mrei. Kada drugi korisnici aplikacije koriste
aplikaciju i posjeuju profil napadaa maliciozni kod se automatski izvrava u sklopu njihove
sesije..
Napada na ovaj nain moe ostvariti viestruke napade na veliki broj korisnika vrlo
jednostavno pa se ovaj tip XSS napada smatra najopasnijim upravo zbog te injenice.
Napada moe ukrasti kolaie za upadanje u rtvinu sesiju i na taj nain moe izvriti lano
predstavljanje i krau identiteta.
12
Primjer tijeka perzistentnog XSS napada se moe opisati u nekoliko koraka:
Korisnik tj. rtva pristupa web stranici koja je sadri maliciozni kod odnosno alje
HTTP zahtjev web serveru
Web server daje HTTP odgovor korisniku i vraa korisniku dinamiki generiranu web
stranicu koja u sebi sadri umetnuti maliciozni skriptni kod
Maliciozni skriptni kod iz primljene web stranice se izvrava unutar korisnikovog web
browsera
13
SLIKA 3: Tijek perzistentnog XSS napada6
6
http://www.cert.hr/sites/default/files/NCERT-PUBDOC-2011-02-323.pdf
7
https://c2.etf.unsa.ba/file.php/223/TS_8_Sigurnost_web_aplikacija.pdf
14
4.3.NEPERZISTENTNI XSS NAPAD
Kod ovog tipa XSS-a kod se uslovno reeno odbija od strane web posluitelja u obliku poruka
o grekama, rezultatima pretraivanja ili u nekom drugom obliku odgovora koji ukljuuje
neke ili sve unesene podatke poslane prema posluitelju kao dio zahtjeva. Ranjivost web
aplikacije na neperzistentni XSS napad se stvara kada se ulazni korisniki podaci zaprimljeni
od korisnika u obliku npr. pojmova za pretraivanje izravno koriste od strane servera odnosno
serverskih skripti kako bi se generirala nova web stranica koja se isporuuje korisniku.
Ovo se moe vidjeti u formama za pretraivanje gdje stranica vraa korisniku njegov pojam
za pretraivanje. esto na web stranicama vidimo prilikom pretraivanja npr. odgovor no
results for PRETRAIVANI POJAM. Tu je upravo rije o reflektiranju koda. Ako se taj
pojam za pretraivanje formulie kao neki zlonamjerni kod napada moe ostvariti napad.
Ako se ulazni korisniki podaci bez filtriranja i sigurnosne provjere ukljuuju u web stranicu
koju server vraa kao odgovor korisniku bez prethodnog HTML kodiranja, potencijalnom
napadau se omoguava umetanje proizvoljnog malicioznog skriptnog koda u HTML sadraj
web stranice koja se generie na dinamiki nain i isporuuje korisniku.
15
Primjer tijeka neperzistentnog XSS napada se moe opisati u nekoliko koraka:
rtva posjeti legitimnu web aplikaciju npr. namijenjenu za neku vrstu e-trgovine i tu
se prijavi putem svog korisnikog imena i lozinke i tamo ostavi podatke o kreditnoj
kartici
Napada putem maila ili putem drutvenih mrea alje maliciozni hiperlink koji
izgleda rtvi legitimno jer sadri URL legitimnog servera
Korisnik aktivira hiperlink i tad se legitimnom web serveru alje HTTP zahtjev za
ranjivom web stranicom.
Legitimni web server prima HTTP zahtjev korisnika, generie dinamiku web stranicu
koja sadri umetnuti maliciozni skriptni kod i alje je korisniku kao HTTP odgovor na
njegov zahtjev.
Maliciozni skriptni kod kojeg korisnik prima se izvrava unutar njegovog web
browsera
Maliciozni skriptni kod dohvat korisnikove kolaie vezane za legitimni server koji
mogu sadrati neke osjetljive podatke npr. vezane za kreditne kartice
16
SLIKA 5: Tijek neperzistentnog XSS napada8
8
http://www.cert.hr/sites/default/files/NCERT-PUBDOC-2011-02-323.pdf
9
https://c2.etf.unsa.ba/file.php/223/TS_8_Sigurnost_web_aplikacija.pdf
17
5.ZATITA OD XSS NAPADA
XSS napadi predstavljaju veliki problem. Sa stanovita sigurnosti sami web browseri nisu
sigurni jer oni alju zahtjeve i procesiraju rezultate. To podrazumijeva i interpretaciju raznih
skriptnih jezika kao to je JavaScript koji moe proizvesti ve spomenute probleme u
aplikacijama.Web browser nema sposobnost da uvidi i odlui da li neki dio koda ima neko
maliciozno djelovanje. S druge strane developeri ne razvijaju uvijek sigurne stranice i
aplikacije pa je i to problem sa stanovita sigurnosti koji napadai eksploatiu.
Prosjenom korisniku ostaju dvije krajnje situacije u kojima bi mogao biti siguran da nee biti
rva XSS napada. Moe da onemogui izvravanje JavaScripta i drugih skriptnih jezika to bi
znaajno degradiralo njegovo iskustvo na Webu i druga opcija je da posjeuje samo stranice
za koje je siguran da su bezbjedne.
Naravno, korisnik treba biti svjestan opasnosti koje nose napadi koji se slue socijalnim
ininjeringom a ta svjesnost se postie edukacijom i informisanjem. Linkove koji se dobiju
elektronskom potom ne treba otvarati osim ukoliko nismo potpuno sigurni u legitimitet
poiljatelja. Otvaranjem takvih nesigurnih poruka se moe vrlo lako postati rtva phishinga.
Opasnost moe biti i u linkovima sumnjivog porijekla koji se nalaze na forumima i slinim
stranicama. Prilikom dobijanja ili nailaska na link korisnik treba obratiti panju na
heksadecimalne znakove u hiperlinku. Kao to je ve spomenuto napadai esto koriste
heksadecimalno kodiranje da bi uinili link manje sumnjivim.
Sve prethodno navedeno se odnosi na korisnika i njegove akcije na Webu. Poto se propusti
koji omoguavaju XSS napade nalaze u samim aplikacijama tako bi zatita prvenstveno
trebala biti orijentisana na same aplikacije.
Zatita od ovih napada se prije svega odnosi na odgovarajuu validaciju korisnikih unosa i
njihovom filtriranju. Filtriranje treba da bude takvo da onemogui da se skriptni kod ugradi u
HTML kod koji se generie dinamiki na osnovu unosa korisnika. Mogue je filtriranje unosa
po zabranjenim znakovima. Ovo je manje siguran nain od proputanja samo dozvoljenih
znakova. Svako filtriranje zahtjeva paljiv izbor filtera koji e sprijeiti XSS napade a koji
nee u isto vrijeme onemoguiti korisnike da unose tekst koji ele unijeti. Filtriranje je jako
sloen koncept i nije jednostavno pronai odgovarajui filter koji e zadovoljiti standarde.
18
Jedan od naina zatite od XSS napada kod aplikacija pisanih PHP programskim jezikom je
pomou seta funkcija koje nudi PHP i koje mogu da uklone maliciozni kod ili da kodiraju
karaktere koji imaju specijalno znaenje.
Primjer takve funkcije je htmlspecialchars(). Ova funkcija kao ulaz prima korisniki upis u
obliku stringa npr. iz nekog polja za pretraivanje i konvertuje specijalne znakove u
odgovarajue HTML ekvivalente.
<?php
# Unos od strane napadaa
$izvorniUlaz = "<script>alert('XSS')</script>";
# Izlaz: <script>alert('XSS')</script>
echo $obradjeniUlaz;
Jo jedan primjer funkcije za borbu protiv XSS napada je htmlentities() koja u sutini ima isti
nain djelovanja kao i htmlspecialchars(),s tim da htmlentities() sve odgovarajue karaktere
pretvara u HTML ekvivalente. Mogue je dobiti ponovo izvorni ulaz
sa html_entity_decode() funkcijom.
Obino cilj XSS napada je neautorizovan pristup i kontrola nad kolaiima odnosno
identifikatorima sesija. Zatita identifikatora sesije, cookie, moe se raditi i koritenjem
HTTPOnly zastavice. HTTPOnly kolaii su prvi put implementirani 2002. od strane
developera koji su radili na Internet Exploreru.
19
Cookie koji ima atribut HTTPOnly nee biti dostupan skriptama koje se izvravaju na klijentu
odnosno nee moi biti zloupotrebljen prilikom XSS napada. Ako je HTTPOnly zastavica
ukljuena u header HTTP odgovora kolaiu se ne moe pristupiti putem skripte na
klijentskoj strani. Naravno, preduslov za ovo je da browser podupire HTTPOnly.
Funkcija setcookie() definie kolai koji e biti poslan zajedno sa ostalim sadrajem HTTP
zaglavlja. Pomou zastavice HTTPonly se definie mogunost pristupa kolaiima odnosno
onemoguava pristup istima npr. Javascriptom.
Postoji jo mogunosti za zatitu od XSS napada, ovdje su spomenuti samo neki od njih.
20
6.PRAKTINI DIO
DVWA je preuzeta sa
Aplikacija nudi mogunosti testiranja na razliite napade : Brute Force,CSRF, SQL Injection,
Command Injection itd. Pored ostalih postoji mogunost testiranja na XSS napad i to sva 3
tipa XSS napada: DOM,perzistentni i neperzistentni.
21
Aplikacija nudi mogunost podeavanja nivoa sigurnosti. Postoje 4 nivoa:
Low- gdje postoji apsolutna ranjivost odnosno gotovo da nema mehanizma zatite. Na ovom
nivou se moe vidjeti primjer kako ne treba formirati aplikaciju.
Medium-postoji neki nivo zatite ali nedovoljan odnosno aplikacija ima neke sigurnosne
mehanizme koji nisu adekvatni te se relativno lako mogu eksploatisati.
22
6.1. Perzistentni XSS
<script>alert('XSS napad')</script>
23
Skripta e se izvriti i otvoriti e se alert box svakom ko posjeti ovu stranicu. Skripta se
izvrila jer ne postoji nikakav metod zatite. Ono to korisnik unese bit e ispisano na stranici
odnosno input korisnika=output stranice. Na sljedeoj slici je prikazan kod ove stranice i ovo
je jedan primjer loeg naina pisanja koda.
Ako se podesi sigurnost na medium razinu postoji nivo zatite koji onemoguava izvravanje
skripte u message box ali ne postoji isto za name box. Na sljedeoj slici vidimo da prethodno
pokuani napad nee uspjeti na ovoj razini .
24
SLIKA 13: Perzistentni(medium) napad
Moemo iskoristiti polje za unos Name ako formiramo skriptu na sljedei nain:
<sCrIpT>alert('napad')</sCrIpT>
Koristei mala i velika slova se moe izbjei ovaj metod filtriranja korisnikog unosa te kao
to je prikazano na sljedecoj slici izvriti napad.
25
Jo jedan nain napada na medium levelu je prikazan na sljedeoj slici.
Ako se postavi zatita na high i pokuaju se prethodno navedene metode eksploatacije XSS
ranjivosti moe se vidjeti da nee biti uspjene odnosno da aplikacija ima mehanizme kojima
se titi od prethodno navedenih metoda.
26
Ne postoji odgovarajua zatita i mogue je izvriti napad upotrebom HTML tada <img/>.
27
6.2.Neperzistentni XSS
28
SLIKA 21: Neperzistentni(low) napad
Na medium levelu ovakav pokuaj nee dati rezultata iz razloga to stranica ima zatitu kao
to je prikazano na sljedeoj slici.
29
SLIKA 23: Neperzistentni(medium) napad
Ovakav problem napada moe lako premositi upotrebom script taga napisanog u neto
drugaijem obliku.
30
6.3. DOM bazirani XSS napad
31
Kod DOM XSS napada problem je u tome kako je stranica interpretirana u kombinaciji sa
korisnikim ulaznim podacima.Napada moe formirati zlonamjerni hiperlink pomou ovih
znaajki i poslati ga rtvi mail-om ili na neki drugi nain te tako uiniti da rtva posjeti neku
njegovu malicioznu stranicu.
Primjer:
<script>window.location.href='https://www.google.hr/'</script>
Otvaarnjem ovakvog linka rtva e biti preusmjerena na stranicu a ovakav link sadri web
adresu legitimnog web servera pa rtva moe misliti da je rije o legitimnoj poruci.
32
6.4. Kradja kolaia
Bit e prezentirano kako se moe spremiti kolai nekog korisnika kojeg natjeramo da
klikne na neki na link ili slino. Na localhostu su napravljena 2 fajla.
<?php
$cookie = $_COOKIE['PHPSESSID'];
$file = fopen('cookie.txt','a');
?>
Pomou ovog koda e se dohvatiti kolai i spremiti u tekstualni file cookie.txt koji je
napravljen i ostavljen prazan.Oba ova fajla su smjetena u folder cookie na localhostu.
33
Ako taj neki drugi korisnik klikne na dugme bit e preusmjeren na http://localhost/cookie/ i
automatski ce njegov kolai biti zapisan u cookie.txt file i taj kolai se moe iskorisiti za
ulaz na njegov nalog.
34
7.ZAKLJUAK
Koritenje Weba openito kao i web aplikacija nosi sa sobom stanovite rizike i opasnosti za
korisnike. Pojavom i popularizacijom skriptnih jezika pogotovo JavaScripta javljaju se razne
mogunosti zlonamjernim korisnicima za realizaciju nekih zlonamjernih radnji. Jedna takva
konkretna realizacija prijetnje sigurnosti web aplikacijama je XSS napad koji predstavlja
jedan od najeih i najopasnijih napada na web aplikacije.
XSS je tehnika napada koja uslovno reeno prisiljava web stranice na prikaz malicioznog
koda, koji se tada izvrava u korisnikovom web browseru. Napad se izvrava na strani klijenta
i ciljana rtva je korisnik aplikacije.
XSS napadi predstavljaju veliki problem. Sa stanovita sigurnosti sami web browseri nisu
sigurni jer oni alju zahtjeve i procesiraju rezultate. To podrazumijeva i interpretaciju raznih
skriptnih jezika kao to je JavaScript koji moe proizvesti ve spomenute probleme u
aplikacijama.Web browser nema sposobnost da uvidi i odlui da li neki dio koda ima neko
maliciozno djelovanje. S druge strane developeri ne razvijaju uvijek sigurne stranice i
aplikacije pa je i to problem sa stanovita sigurnosti koji napadai eksploatiu. Zatita treba
biti i sa strane korisnika web aplikacija i sa strane developera. Korisnici trebaju biti svjesni
opasnosti koje vrebaju na webu a developeri trebaju teiti ka to boljem i sigurnijem dizajnu
web aplikacija. Neki od naina na koji napadai mogu izvriti ovaj napad bilo da je
perzistentni,neperzistentni ili DOM bazirani napad su opisani u praktinom dijelu rada na
temelju DVWA.
35
8.LITERATURA
2. https://www.owasp.org/index.php/Category:OWASP_Top_Ten_Project
Posjeeno 21.5.2017.
3. https://c2.etf.unsa.ba/file.php/223/TS_8_Sigurnost_web_aplikacija.pdf
Posjeeno 21.5.2017.
4. http://www.cert.hr/sites/default/files/NCERT-PUBDOC-2011-02-323.pdf
Posjeeno 20.5.2017.
5. http://www.cert.hr/sites/default/files/NCERT-PUBDOC-2011-02-323.pdf
Posjeeno 23.5.2017.
6. https://excess-xss.com/
Posjeeno 19.5.2017.
7. https://www.w3schools.com/
Posjeeno 21.5.2017.
8. https://www.acunetix.com/websitesecurity/xss/
Posjeeno 21.5.2017.
9. https://www.veracode.com/security/xss
Posjeeno 19.5.2017.
10. http://www.dvwa.co.uk/
Posjeeno 25.5.2017.
36
37