În articolul anterior, am aflat despre erorile XSS (Cross Site Scripting) și despre exploatarea efectivă a XSS Reflected. Există un alt tip de XSS care este considerat mai periculos: XSS stocat.
Spre deosebire de Reflected, care atacă direct câteva victime vizate de hackeri, Stored XSS vizează mai multe victime. Această eroare apare atunci când aplicația web nu verifică temeinic datele de intrare înainte de a le salva în baza de date (aici folosesc acest concept pentru a mă referi la baza de date, fișier sau alte zone care stochează datele aplicației. web).
Cu tehnica Stored XSS, hackerii nu o exploatează direct, ci trebuie să o facă în cel puțin 2 pași.
În primul rând, hackerii folosesc puncte de intrare nefiltrate (formular, intrare, zonă de text...) pentru a introduce cod periculos în baza de date.

În continuare, atunci când utilizatorul accesează aplicația web și efectuează operațiuni legate de aceste date salvate, codul hackerului va fi executat pe browserul utilizatorului.
![Web8: Exploits XSS - Partea 2: XSS stocat Web8: Exploits XSS - Partea 2: XSS stocat]()
În acest moment, hackerul pare să-și fi atins scopul. Din acest motiv, tehnica Stored XSS este numită și XSS de ordinul doi.
Scenariul de exploatare este descris după cum urmează:
![Web8: Exploits XSS - Partea 2: XSS stocat Web8: Exploits XSS - Partea 2: XSS stocat]()
Reflected XSS și Stored XSS au două diferențe majore în procesul de atac.
- În primul rând, pentru a exploata Reflected XSS, hackerul trebuie să păcălească victima să-și acceseze adresa URL. În ceea ce privește Stored XSS, nu este nevoie să faceți acest lucru.După introducerea codului periculos în baza de date a aplicației, hackerul trebuie doar să aștepte ca victima să îl acceseze automat. Pentru victime, acest lucru este complet normal, deoarece nu știu că datele pe care le accesează au fost infectate.
- În al doilea rând, obiectivul hackerului va fi mai ușor de atins dacă în momentul atacului victima se află încă în sesiunea aplicației web. Cu Reflected XSS, un hacker poate convinge sau păcăli victima să se conecteze și să acceseze adresa URL pe care o furnizează pentru a executa cod rău intenționat. Dar Stored XSS este diferit, deoarece codul rău intenționat a fost stocat în baza de date Web, așa că ori de câte ori utilizatorul accesează funcții aferente, codul rău intenționat va fi executat și, cel mai probabil, aceste funcții necesită autentificare. utilizatorul este încă în sesiune.
Din aceste lucruri, se poate observa că Stored XSS este mult mai periculos decât Reflected XSS, subiecții afectați pot fi toți utilizatorii aplicației web respective. Iar dacă victima are un rol administrativ, există și riscul de deturnare web.