Korištenje sličnih Unicode simbola za zaobilaženje autentifikacije

GitHub se pokazao podložan napadu koji omogućava preuzimanje pristupa računu putem manipulacije Unicode simbolima u emailu. Problem je u tome što se neki Unicode simboli, pri primjeni funkcija za konverziju u mala ili velika slova, prevode u obične simbole sličnog oblika (kada se više različitih simbola prevodi u jedan simbol – na primjer, turski simbol «ı» i «i» prilikom prebacivanja u veliko slovo postaju «I»).

Prije provjere ulaznih podataka u nekim uslugama i aplikacijama, podaci uneseni od strane korisnika prvo se konvertiraju u velika ili mala slova, a zatim se provjeravaju u bazi podataka. Ako servis dopušta korištenje unicode simbola u prijavi ili emailu, napadač može iskoristiti slične unicode simbole za izvođenje napada koji manipulira kolizijama u tablicama konverzije velikih i malih slova (Unicode Case Mapping Collisions).

‘ß’.toUpperCase() == ‘ss’.toUpperCase() // 0x0131
‘K’.toLowerCase() == ‘K’.toLowerCase() // 0x212A
‘John@Gıthub.com’.toUpperCase() == ‘John@Github.com’.toUpperCase()

Na GitHubu napadač je mogao putem obrasca za oporavak zaboravljene lozinke inicirati slanje koda za oporavak na drugi email putem navođenja u obrascu adrese koja uključuje unicode simbol koji uzrokuje koliziju (na primjer, umjesto mike@example.org navođena je email adresa mıke@example.org). Adresa je prolazila provjeru jer se konvertirala u velika slova i poklapala s izvorom (mike@example.org), ali je prilikom slanja poruke bila prikazana onako kako jest i kod oporavka je odlazio na lažnu adresu (mıke@example.org).

Neki od simbola, koji uzrokuju kolizije prilikom konverzije slučaja:

ß 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

Izvor: opennet.ru

Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere 🔥 Kupite pouzdan hosting za web stranice s DDoS zaštitom, VPS VDS servere | ProHoster