Cross-Site Scripting sau atac XSS

Există multe atacuri computerizate diferite la care suntem expuși, în acest tutorial vom vorbi despre Atac cibernetic Cross-Site Scripting (XSS). Acest atac constă în injectarea de cod nedorit în aplicațiile web. Cu aceasta, un atacator poate schimba comportamentul aplicației, care poate corupe date, pierde informații, refuza serviciul (DoS) etc.

De exemplu, un atacator ar putea face ca o pagină web vulnerabilă să redirecționeze traficul către propria sa, cu consecințe negative atât pentru proprietarul paginii, cât și pentru utilizatori.

Ce consecințe ar putea avea acest lucru?

Diverse și serioase, dar imaginați-vă că Facebook are o vulnerabilitate de acest tip, atacatorul o exploatează, iar falsificarea paginii originale creează o clonă a acestei pagini, astfel emulând Facebook. Utilizatorii se conectează și atacatorul își păstrează acreditările, apoi le redirecționează pur și simplu către pagina oficială, astfel încât utilizatorul află rar.

Unde putem verifica dacă un site web este vulnerabil?

Puteți face acest lucru în mai multe moduri, dar cel mai frecvent este în forumuri sau în locuri unde permit comentarii în cazul unui atac persistent sau în adresele URL în cazul unui non-persistent.

Care este cauza acestei vulnerabilități?

Deoarece paginile nu verifică corect datele introduse de utilizatori și, de asemenea, ieșirea nu este codificată. Deci, dacă aveți o pagină web, întotdeauna nu aveți încredere în utilizatorii care își validează datele, limbajele de programare aduc deja funcții care permit, de exemplu funcția strip_tag PHP elimină etichetele HTML (dar uită-te la avertismentele pe care le are).

Tipuri de atac XSSTip non-persistent sau în oglindăÎn acest atac, victimei i se oferă o adresă URL manipulată, care va conține codul care trebuie injectat ca parametru.

Tipul persistent sau directDatele inserate de utilizator vor fi stocate pe server, afectând toți utilizatorii care se conectează la web.

Vom vedea exemple despre cum s-ar desfășura atacul de acum înainte.

NotăScopul tutorialului este să puteți testa aplicațiile web pe care le creați sau cele ale persoanelor care vă acordă permisiunea, nu pentru a efectua acte „rău intenționate”.

1. Exemplu XSS non-persistent


Vrem să redirecționăm o persoană către o pagină pe care o controlăm, dar făcându-i să creadă că vizitează pagina originală, îi putem trimite un e-mail cu linkul scurtat (sau nu), care are următorul conținut:
 http://www.paginadeseada.com/?search=
Cu acest exemplu este clar cât de ușor este să exploatezi o vulnerabilitate de acest tip.

2. Exemplu XSS persistent


Într-un comentariu putem pune un cod HTML sau JavaScript, care este salvat pe server și că, de fiecare dată când pagina care conține comentariul este încărcat, redirecționează către pagina noastră web, pentru acest exemplu, poate fi inserat următorul cod HTML:
 
Trecem la un exemplu diferit de cel pe care l-am văzut acum. Acum vom vedea exemple folosind DVWA, o aplicație web dezvoltată cu PHP și MySQL. Această aplicație vine deja în Metasploitable 2, pe care o puteți monta într-o mașină virtuală.

Ne va permite să testăm diferite atacuri web și putem modifica gradul de securitate (pentru exemplele pe care le folosim pe cel scăzut), vom putea vedea și codurile PHP care sunt atacate, astfel încât să puteți vedea ce nu de utilizat în codurile dvs.

3. Exemplele XSS reflectă DVWA


În această secțiune vom vedea mai multe exemple, să începem. Dacă punem un nume normal, la fel Test, aplicația funcționează bine, să vedem imaginea:

MARI

Dacă introducem următorul cod ca nume:

 Test
Vedem că numele devine îndrăzneț (poate în imagine nu este apreciat foarte bine):

MARI

Și dacă punem o intrare, va funcționa? Pentru a-l testa, inserăm următorul cod:

 
Și vedem în următoarea imagine că a funcționat:

MARI

Să trecem la XSS stocat (stocat).

4. Exemple de DVWA stocate XSS


Vom efectua mai multe dovezi ale conceptului, primul lucru pe care îl vom face este să inserăm un text scurt însoțit de un script ca un comentariu, să vedem ce se întâmplă, scriptul este cât se poate de ușor, este următorul:
 Bună și la revedere.

MARI

Când o introducem ca în fotografia anterioară, facem clic pe Semnează cartea de oaspeți, comentariul este trimis, nu se întâmplă nimic ciudat, se vede șirul de text, nu există semne ale scriptului, așa cum putem vedea mai jos:

MARI

Deci, nu s-a întâmplat nimic? Ei bine, să verificăm, să reîmprospătăm pagina și vedem că alerta sare:

MARI

De asemenea, puteți aprecia că comentariul are numai Hello, de aceea scriptul a fost pus între text, astfel încât să vedeți că îl citește, se oprește în alertă și când faceți clic pe OK veți avea restul textului și restul paginii lipsea (la fel ca și linkurile verzi care se aflau sub partea de comentarii).

Acum vom insera un formular în comentariu, puteți vedea că numărul de caractere pe care le puteți introduce este limitat la 50, pentru că vom inspecta codul HTML din zona textului comentariului (faceți clic dreapta, Inspectați):

MARI

V-om vedea lungime maximă = "50", vom adăuga încă un 0 la final, rămânând în 500, așa cum vedem mai jos:

MARI

Și acum vom comenta următorul cod HTML:

 Scrie-ti numele:
Vedem că el acceptă deja, așa că dăm la Semnați cartea de oaspeți și vedem următoarele:

MARI

Formularul a fost inserat, după cum am verificat. În cele din urmă, dacă doriți să exersați cu nivelul mediu în XSS stocat, încercați următoarele:

Primul. Modificați numărul maxim de caractere acceptat de câmpul Nume, la fel cum am făcut înainte.

Al 2-lea. Adăugați următorul nume:

 Test 

A treia. Ca un comentariu pune ceea ce vrei.

Al 4-lea. Trimiteți comentariul și actualizați ecranul, veți vedea că este salvat.

Dacă doriți să eliminați cookie-ul, aș schimba scriptul pentru următoarele:

 
Veți vedea următoarele:

În continuare las linkul către un cadru numit XSSer care ne va ajuta detectează, exploatează și raportează vulnerabilitățile XSS.

Pe pagina sa vine pe măsură ce este instalat (în Kali Linux 2016 vine deja) și exemple de utilizare.

Am văzut posibilitățile pe care le are un atacator atunci când i se prezintă o pagină web vulnerabilă, evitarea acestor atacuri nu este dificilăAstăzi, în orice limbaj de programare avem funcții care ne ușurează viața. Este important ca înainte de a lansa o pagină web să verificați aceste erori, deoarece vă poate distruge afacerea.

Dacă doriți să vedeți un tutorial în care este utilizată această aplicație, dar se efectuează alte tipuri de atacuri: Pentestarea cu DVWA.

În cele din urmă, va fi furnizat un link, în cazul în care doriți să vedeți un alt tip de atac, care se ocupă și de injectarea codului: injecția SQL.

V-a plăcut și ați ajutat acest tutorial?Puteți recompensa autorul apăsând acest buton pentru a-i oferi un punct pozitiv
wave wave wave wave wave