Verwendung ähnlicher Unicode-Zeichen zur Umgehung der Authentifizierung

GitHub drehte sich um ist anfällig für einen Angriff, der es Ihnen ermöglicht, durch Manipulation von Unicode-Zeichen in E-Mails Zugriff auf ein Konto zu erlangen. Das Problem besteht darin, dass einige Unicode-Zeichen bei Verwendung der Konvertierungsfunktionen für Klein- oder Großbuchstaben in reguläre Zeichen mit ähnlichem Stil übersetzt werden (wenn mehrere verschiedene Zeichen in ein Zeichen übersetzt werden – zum Beispiel die türkischen Zeichen „ı“ und „i“) „werden bei der Umwandlung in Großbuchstaben in „I“ umgewandelt).

Vor der Überprüfung der Anmeldeparameter werden in einigen Diensten und Anwendungen vom Benutzer bereitgestellte Daten zunächst in Groß- oder Kleinschreibung umgewandelt und anschließend in der Datenbank überprüft. Wenn ein Dienst die Verwendung von Unicode-Zeichen in einem Login oder einer E-Mail zulässt, kann ein Angreifer ähnliche Unicode-Zeichen verwenden, um einen Angriff durchzuführen, der Kollisionen in Unicode Case Mapping Collisions manipuliert.

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@Gıthub.com'.toUpperCase() == '[E-Mail geschützt] '.toUpperCase()

Angreifer auf GitHub könnte Veranlassen Sie über das Formular zur Wiederherstellung eines vergessenen Passworts das Senden eines Wiederherstellungscodes an eine andere E-Mail, indem Sie im Formular eine Adresse angeben, die ein Unicode-Zeichen enthält, das eine Kollision verursacht (z. B. anstelle von [E-Mail geschützt] E-Mail m wurde angegebenı[E-Mail geschützt] ). Die Adresse hat den Test bestanden, da sie in Großbuchstaben umgewandelt wurde und mit der Originaladresse übereinstimmte ([E-Mail geschützt] ), aber beim Versenden des Briefes wurde er so ersetzt, wie er war, und der Wiederherstellungscode wurde an eine gefälschte Adresse (mı[E-Mail geschützt] ).

Einige Zeichen, was zu Kollisionen beim Konvertieren des Registers führt:

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

Source: opennet.ru

Kommentar hinzufügen