Τι είναι το XSS

Τι είναι το XSS

Το XSS (Cross-Site Scripting) είναι μια επίθεση κατά της ασφάλειας των ιστοσελίδων, κατά την οποία ο επιτιθέμενος ενσωματώνει κακόβουλο κώδικα (συνήθως JavaScript) σε μια ιστοσελίδα που ανοίγει σε έναν web browser. Ο κακόβουλος κώδικας εκτελείται στον browser του θύματος, όχι στον διακομιστή, και μπορεί να έχει πολλές επιπτώσεις, συμπεριλαμβανομένης της κλοπής δεδομένων χρηστών, όπως cookies ή συνόδους, την αλλοίωση του περιεχομένου της ιστοσελίδας ή την εκτέλεση επιπλέον επιθέσεων σε βάρος των χρηστών.

Οι βασικές μορφές του XSS περιλαμβάνουν:

  1. Stored XSS (Αποθηκευμένο XSS): Όπου ο κακόβουλος κώδικας αποθηκεύεται στη βάση δεδομένων ή σε ένα αρχείο, και εκτελείται κάθε φορά που ο χρήστης ζητάει να δει τη σελίδα.
  2. Reflected XSS (Ανακλιμένο XSS): Όπου ο κακόβουλος κώδικας περνά από τον browser του θύματος μέσω μιας επικίνδυνης URL ή ενός παραμέτρου σε μια σελίδα.
  3. DOM-based XSS (DOM XSS): Όπου ο κακόβουλος κώδικας τροποποιεί το Document Object Model (DOM) στον browser του θύματος, και η επίθεση εκτελείται κατά την προβολή της σελίδας.
  4. Blind XSS: Όπου ο κακόβουλος κώδικας εκτελείται χωρίς να αφήνει άμεσα αντίδραση στον browser του θύματος. Ο επιτιθέμενος δεν βλέπει την έξοδο, αλλά μπορεί να συλλέγει δεδομένα.
  5. Non-persistent XSS: Όπου ο κακόβουλος κώδικας δεν αποθηκεύεται, αλλά παραδίδεται στο θύμα μέσω κακόβουλων συνδέσμων ή μηνυμάτων. Εκτελείται κατά την προβολή της σελίδας.

 

Το Cross-Site Scripting (XSS) λειτουργεί με τον εξής τρόπο:

  1. Ενσωμάτωση κακόβουλου κώδικα: Ο επιτιθέμενος ενσωματώνει κακόβουλο κώδικα (συνήθως JavaScript) σε μια ιστοσελίδα, συχνά μέσω εισόδων χρήστη όπως φόρμες, παραμέτρους URL ή σχόλια.
  2. Αποστολή της σελίδας προς το θύμα: Η τροποποιημένη σελίδα στέλνεται στο θύμα, συχνά μέσω κακόβουλων συνδέσμων ή ηλεκτρονικών μηνυμάτων.
  3. Εκτέλεση του κακόβουλου κώδικα: Ο κακόβουλος κώδικας εκτελείται στον web browser του θύματος κατά την προβολή της τροποποιημένης σελίδας. Αυτό συμβαίνει επειδή ο browser εκτελεί όλο τον JavaScript που βρίσκεται στο περιεχόμενο της σελίδας.
  4. Κλοπή δεδομένων ή επιθέσεις: Ο κακόβουλος κώδικας μπορεί να προκαλέσει πολλά διαφορετικά προβλήματα, όπως την κλοπή των cookies σύνδεσης του χρήστη, την αποστολή αιτημάτων εξ’ αποστάσεως εξ ονόματος του χρήστη, την αλλοίωση του περιεχομένου της σελίδας, την απόκτηση προσωπικών πληροφοριών, και πολλά άλλα.
Δείτε επίσης:   Πως θα βάλετε backdoor σε μια ιστοσελίδα με τη χρήση του Weevely

Ο κίνδυνος με το XSS είναι ότι ο κακόβουλος κώδικας εκτελείται με τα δικαιώματα του χρήστη στον browser του, και αυτό μπορεί να έχει επιπτώσεις σε προσωπικά δεδομένα, ευαίσθητες πληροφορίες και την ασφάλεια της σελίδας.

Υπάρχουν διάφορα εργαλεία που μπορείτε να χρησιμοποιήσετε για την εντοπισμό και τον έλεγχο των ευπαθειών Cross-Site Scripting (XSS) σε ιστοσελίδες και εφαρμογές. Αυτά τα εργαλεία σάρωσης και ελέγχου ασφάλειας μπορούν να σας βοηθήσουν να εντοπίσετε και να αποτρέψετε επιθέσεις XSS. Εδώ είναι μερικά από αυτά:

  1. OWASP Zed Attack Proxy (ZAP): Το OWASP ZAP είναι ένα ανοιχτού κώδικα εργαλείο εξερεύνησης ασφαλείας που προσφέρει ανίχνευση και αντιμετώπιση των ευπαθειών XSS, μεταξύ άλλων.

    Website: https://owasp.org/www-project-zap/

  2. Netsparker: Το Netsparker είναι ένα εμπορικό εργαλείο σάρωσης ασφαλείας που προσφέρει ανίχνευση ευπαθειών XSS και πολλών άλλων ασφαλείας.

    Website: https://www.netsparker.com/

  3. Acunetix: Το Acunetix είναι ένα άλλο εμπορικό εργαλείο που προσφέρει σάρωση ασφαλείας για ευπαθείς XSS και άλλες ασφαλείας.

    Website: https://www.acunetix.com/

  4. Burp Suite: Το Burp Suite είναι ένα εργαλείο συναχωσίνωσης και ασφαλείας που μπορεί να χρησιμοποιηθεί για τον έλεγχο της ασφάλειας εφαρμογών, συμπεριλαμβανομένης της ανίχνευσης ευπαθειών XSS.

    Website: https://portswigger.net/burp

  5. Vega: Το Vega είναι ένα ανοιχτού κώδικα εργαλείο ασφαλείας που μπορεί να χρησιμοποιηθεί για τον έλεγχο της ασφάλειας των ιστοσελίδων και την ανίχνευση ευπαθειών XSS.

    Website: https://subgraph.com/vega/

Για παράδειγμα.  Αν πάτε στην σελίδα http://testphp.vulnweb.com/ (έχει δημιουργηθεί για να εξασκούνται οι νέοι σε θέματα ασφάλειας ) και αναζητήσετε κάτι παράξενο όπως αδσαδσδσζψσσαδσα θα σας εμφανίσει το παρακάτω μήνυμα

searched for: αδσαδσδσζψσσαδσα

 


Παρατηρούμε δηλαδή ότι το μήνυμα που πληκτρολογήσαμε εμφανίστηκε στην ιστοσελίδα. Τώρα αν αντικαταστήσουμε αυτό το μήνυμα με κώδικα μπορούμε να πετύχουμε πολύ διαφορετικά αποτελέσματα για παράδειγμα αν γράψουμε

<script>alert("This site is vulnerable to xss")</script>


Τότε θα παρατηρήσουμε ότι ο κώδικας μας εκτελείτε και έτσι μπορούμε να πετύχουμε αποτελέσματα που δεν είχαν προβλεφθεί από τους δημιουργούς του site

 

 

Όπως ανέφερα δεν χρησιμοποιείται τόσο για επίθεση στην σελίδα όσο για τους χρήστες που υπάρχουν σε αυτήν.

Πως όμως μπορεί αυτός ο τρόπος να βλάψει τους απλούς χρήστες?

 

Λοιπόν ο επιτιθέμενος έχει την επιλογή να στείλει το url που περιέχει την ευπάθεια σε άλλους χρήστες που χρησιμοποιούν αυτήν την σελίδα και ο κώδικας θα εκτελεστή στον υπολογιστή τους. Στην σελίδα που κοιτάμε εμείς δεν είναι ορατή η μεταβλητή που περιέχει τα δεδομένα που πληκτρολογήσαμε. Αρά ο επιτιθέμενος σε αυτήν την περίπτωση θα έβλεπε μέσο προγραμμάτων η κώδικα τι μεταβλητές υπάρχουν στο url 🙂

και θα έβρισκε ότι μπορούσε να στείλει κάτι τέτοιο στο θύμα του. (Δεν δουλεύει στην περίπτωση μας)

testphp.vulnweb.com/search.php?test=query&searchFor=<script>alert("this site is vulnerable to xss")</script>
Αυτό όμως φαίνεται ότι είναι πειραγμένο και ο χρήστης θα μπορούσε να το καταλάβει εύκολα. Αν όμως το κωδικοποιούσαμε ? ο χρήστης θα έβλεπε κάτι τέτοιο στο facebook/skype κλπ

testphp.vulnweb.com/search.php?test=query&searchFor=<script>alert("Test")</script></script>
Δεν θα έμπαινε στον κόπο να το αποκρυπτογραφήσει και απλά θα το άνοιγε για να δει τη είναι.

 

Ένας άλλος τρόπος είναι να βρει ευπάθεια σε πράγματα που μένουν για πάντα στο site. πχ σε ένα φόρουμ. Θα μπορούσε να κάνει xss σε κάποιο ποστ και έτσι θα έπεφταν στην παγίδα όλοι όσοι άνοιγαν το θέμα για να το δουν.

 

Φυσικά δεν θα ήταν τέτοιες εντολές. Η γλώσσα η οποία χρησιμοποιήσαμε λέγετε javascript… Ένας από τους λόγους είναι πως η γλώσσα είναι πιο πλούσια από την html και δίνει την δυνατότητα στον επιτιθέμενο να κλέψει τα cookies και να τα εκμεταλλευτή για να βρει τον κωδικό κάποιου χρήστη

Ο Αλέξανδρος είναι ο ιδρυτής του hacks.gr και η κινητήρια δύναμη πίσω από το όραμά μας.
Με πολυετή εμπειρία στον κόσμο του hacking, έχει διαμορφώσει μια κοινότητα που είναι πηγή έμπνευσης και μάθησης για όλους.
Με τον προσωπικό του χαρακτήρα και την τεχνογνωσία του, έχει δημιουργήσει έναν χώρο όπου οι λάτρεις του hacking μπορούν να συναντιούνται, να μοιράζονται γνώσεις και να εξελίσσονται.

0 0 votes
Article Rating
Subscribe
Notify of
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x
Secured By miniOrange