Χρήση παρόμοιων χαρακτήρων Unicode για παράκαμψη ελέγχου ταυτότητας

GitHub γύρισε είναι επιρρεπής σε επίθεση που σας επιτρέπει να αδράξετε την πρόσβαση σε έναν λογαριασμό μέσω χειραγώγησης χαρακτήρων Unicode στο email. Το πρόβλημα είναι ότι ορισμένοι χαρακτήρες Unicode, όταν χρησιμοποιούν τις συναρτήσεις μετατροπής πεζών ή κεφαλαίων, μεταφράζονται σε κανονικούς χαρακτήρες παρόμοιου στυλ (όταν πολλοί διαφορετικοί χαρακτήρες μεταφράζονται σε έναν χαρακτήρα - για παράδειγμα, ο τουρκικός χαρακτήρας "ı" και "i " όταν μετατρέπονται σε κεφαλαία μετατρέπονται σε "I").

Πριν από τον έλεγχο των παραμέτρων σύνδεσης σε ορισμένες υπηρεσίες και εφαρμογές, τα δεδομένα που παρέχονται από τον χρήστη μετατρέπονται πρώτα σε κεφαλαία ή πεζά και στη συνέχεια ελέγχονται στη βάση δεδομένων. Εάν μια υπηρεσία επιτρέπει τη χρήση χαρακτήρων unicode σε μια σύνδεση ή ένα email, τότε ένας εισβολέας μπορεί να χρησιμοποιήσει παρόμοιους χαρακτήρες unicode για να πραγματοποιήσει μια επίθεση που χειρίζεται τις συγκρούσεις σε Unicode Case Mapping Collisions.

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@Gıthub.com'.toUpperCase() == '[προστασία μέσω email]'.toUpperCase()

Επιτιθέμενος στο GitHub θα μπορούσε μέσω της φόρμας για την ανάκτηση ενός ξεχασμένου κωδικού πρόσβασης, ξεκινήστε την αποστολή ενός κωδικού ανάκτησης σε άλλο email υποδεικνύοντας στη φόρμα μια διεύθυνση που περιλαμβάνει έναν χαρακτήρα unicode που προκαλεί σύγκρουση (για παράδειγμα, αντί για [προστασία μέσω email] email m υποδείχθηκεı[προστασία μέσω email]). Η διεύθυνση πέρασε τη δοκιμή επειδή μετατράπηκε σε κεφαλαία και ταίριαξε με την αρχική διεύθυνση ([προστασία μέσω email] ), αλλά κατά την αποστολή της επιστολής αντικαταστάθηκε ως έχει και ο κωδικός ανάκτησης στάλθηκε σε ψεύτικη διεύθυνση (mı[προστασία μέσω email]).

Μερικά απο χαρακτήρες, που προκαλεί συγκρούσεις κατά τη μετατροπή καταχωρητή:

ß 0x00DF SS
ı 0x0131 I
ſ 0x017F S
0xFB00 FF
 0xFB01 FI
 0xFB02 FL
 0xFB03 FFI
ffl 0xFB04 FFL
ſt 0xFB05 ST
st 0xFB06 ST
K 0x212A k

Πηγή: opennet.ru

Προσθέστε ένα σχόλιο