Στο προηγούμενο άρθρο, μάθαμε για τα σφάλματα XSS (Cross Site Scripting) και την πραγματική εκμετάλλευση του XSS Reflected. Υπάρχει ένας άλλος τύπος XSS που θεωρείται πιο επικίνδυνος: Αποθηκευμένο XSS.
Σε αντίθεση με το Reflected, το οποίο επιτίθεται απευθείας σε λίγα θύματα που στοχεύουν χάκερ, το Stored XSS στοχεύει περισσότερα θύματα. Αυτό το σφάλμα παρουσιάζεται όταν η εφαρμογή web δεν ελέγχει διεξοδικά τα δεδομένα εισόδου πριν τα αποθηκεύσει στη βάση δεδομένων (εδώ χρησιμοποιώ αυτήν την έννοια για να αναφερθώ στη βάση δεδομένων, το αρχείο ή άλλες περιοχές που αποθηκεύουν δεδομένα εφαρμογής. web).
Με την τεχνική Stored XSS, οι χάκερ δεν την εκμεταλλεύονται άμεσα αλλά πρέπει να το κάνουν σε τουλάχιστον 2 βήματα.
Πρώτον, οι χάκερ χρησιμοποιούν αφιλτράριστα σημεία εισαγωγής (φόρμα, εισαγωγή, περιοχή κειμένου...) για να εισάγουν επικίνδυνο κώδικα στη βάση δεδομένων.

Στη συνέχεια, όταν ο χρήστης αποκτήσει πρόσβαση στην εφαρμογή Ιστού και εκτελεί λειτουργίες που σχετίζονται με αυτά τα αποθηκευμένα δεδομένα, ο κώδικας του χάκερ θα εκτελεστεί στο πρόγραμμα περιήγησης του χρήστη.

Σε αυτό το σημείο, ο χάκερ φαίνεται να έχει πετύχει τον στόχο του. Για το λόγο αυτό, η τεχνική Αποθηκευμένη XSS ονομάζεται επίσης δεύτερης τάξης XSS.
Το σενάριο εκμετάλλευσης περιγράφεται ως εξής:

Το Reflected XSS και το Stored XSS έχουν δύο σημαντικές διαφορές στη διαδικασία επίθεσης.
- Πρώτον, για να εκμεταλλευτεί το Reflected XSS, ο χάκερ πρέπει να ξεγελάσει το θύμα ώστε να αποκτήσει πρόσβαση στη διεύθυνση URL του. Όσο για το Stored XSS, δεν χρειάζεται να το κάνετε αυτό. Αφού εισαγάγετε τον επικίνδυνο κώδικα στη βάση δεδομένων της εφαρμογής, ο χάκερ πρέπει απλώς να περιμένει την αυτόματη πρόσβαση του θύματος. Για τα θύματα, αυτό είναι απολύτως φυσιολογικό γιατί δεν γνωρίζουν ότι τα δεδομένα στα οποία έχουν πρόσβαση έχουν μολυνθεί.
- Δεύτερον, ο στόχος του χάκερ θα είναι ευκολότερος να επιτευχθεί εάν τη στιγμή της επίθεσης το θύμα βρίσκεται ακόμα στη συνεδρία της διαδικτυακής εφαρμογής. Με το Reflected XSS, ένας χάκερ μπορεί να πείσει ή να ξεγελάσει το θύμα να συνδεθεί και να αποκτήσει πρόσβαση στη διεύθυνση URL που παρέχει για την εκτέλεση κακόβουλου κώδικα. Αλλά το Stored XSS είναι διαφορετικό, επειδή ο κακόβουλος κώδικας έχει αποθηκευτεί στη βάση δεδομένων Ιστού, επομένως όποτε ο χρήστης αποκτά πρόσβαση σε σχετικές λειτουργίες, ο κακόβουλος κώδικας θα εκτελείται και πιθανότατα αυτές οι λειτουργίες απαιτούν έλεγχο ταυτότητας. συνδεθείτε πρώτα, οπότε προφανώς κατά τη διάρκεια αυτής της περιόδου ο χρήστης βρίσκεται ακόμα στη συνεδρία.
Από αυτά τα πράγματα, μπορεί να φανεί ότι το Αποθηκευμένο XSS είναι πολύ πιο επικίνδυνο από το Reflected XSS, τα επηρεαζόμενα θέματα μπορεί να είναι όλοι οι χρήστες αυτής της εφαρμογής web. Και εάν το θύμα έχει διοικητικό ρόλο, υπάρχει επίσης κίνδυνος πειρατείας ιστού.