Gebruik soortgelyke Unicode-karakters om verifikasie te omseil

GitHub opgeëindig is vatbaar vir 'n aanval wat jou toelaat om toegang tot 'n rekening te gryp deur Unicode-karakters in e-pos te manipuleer. Die probleem is dat sommige Unicode-karakters, wanneer die kleinletter- of hoofletter-omskakelingsfunksies gebruik word, vertaal word in gewone karakters wat soortgelyk is in styl (wanneer verskeie verskillende karakters in een karakter vertaal word - byvoorbeeld, die Turkse karakter "ı" en "i " wanneer dit na hoofletters omgeskakel word na "I").

Voordat u aanmeldparameters in sommige dienste en toepassings nagaan, word data wat deur die gebruiker verskaf is, eers na hoofletters of kleinletters omgeskakel en dan in die databasis nagegaan. As 'n diens die gebruik van unicode-karakters in 'n aanmelding of e-pos toelaat, kan 'n aanvaller soortgelyke unicode-karakters gebruik om 'n aanval uit te voer wat botsings in Unicode Case Mapping Collisions manipuleer.

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

Aanvaller op GitHub kon deur die vorm vir die herwinning van 'n vergete wagwoord, begin om 'n herstelkode na 'n ander e-pos te stuur deur 'n adres in die vorm aan te dui wat 'n unicode-karakter insluit wat 'n botsing veroorsaak (byvoorbeeld, in plaas van [e-pos beskerm] e-pos m is aangeduiı[e-pos beskerm]). Die adres het die toets geslaag omdat dit na hoofletters omgeskakel is en ooreenstem met die oorspronklike adres ([e-pos beskerm] ), maar toe die brief gestuur is, is dit vervang soos dit is en die herstelkode is na 'n vals adres gestuur (mı[e-pos beskerm]).

Sommige van karakters, wat botsings veroorsaak wanneer register omgeskakel word:

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

Bron: opennet.ru

Voeg 'n opmerking