Soortgelijke Unicode-tekens gebruiken om authenticatie te omzeilen

GitHub bleek te zijn is vatbaar voor een aanval waarmee u toegang kunt krijgen tot een account door manipulatie van Unicode-tekens in e-mail. Het probleem is dat sommige Unicode-tekens bij gebruik van de conversiefuncties voor kleine letters of hoofdletters worden vertaald in gewone tekens die qua stijl vergelijkbaar zijn (wanneer verschillende tekens in één teken worden vertaald - bijvoorbeeld het Turkse teken "ı" en "i " wanneer omgezet in hoofdletters, worden omgezet in "I").

Voordat de inlogparameters in sommige services en applicaties worden gecontroleerd, worden door de gebruiker aangeleverde gegevens eerst omgezet in hoofdletters of kleine letters en vervolgens in de database gecontroleerd. Als een service het gebruik van Unicode-tekens in een login of e-mail toestaat, kan een aanvaller vergelijkbare Unicode-tekens gebruiken om een ​​aanval uit te voeren die botsingen manipuleert in Unicode Case Mapping Collisions.

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@Gıthub.com'.toUpperCase() == '[e-mail beveiligd]'.naarHoofdletter()

Aanvaller op GitHub zou kunnen Via het formulier voor het herstellen van een vergeten wachtwoord kunt u het verzenden van een herstelcode naar een andere e-mail starten door in het formulier een adres aan te geven dat een Unicode-teken bevat dat een botsing veroorzaakt (bijvoorbeeld in plaats van [e-mail beveiligd] e-mail m is opgegevenı[e-mail beveiligd]). Het adres heeft de test doorstaan ​​omdat het is geconverteerd naar hoofdletters en overeenkomt met het oorspronkelijke adres ([e-mail beveiligd] ), maar bij het verzenden van de brief werd deze vervangen zoals hij was en werd de herstelcode naar een vals adres gestuurd (mı[e-mail beveiligd]).

Enkele van karakters, waardoor botsingen ontstaan ​​bij het converteren van register:

ß 0x00DF SS
ik 0x0131 ik
ſ 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

Bron: opennet.ru

Voeg een reactie