Ngagunakeun Karakter Unicode Sarupa pikeun Bypass Auténtikasi

GitHub réngsé rentan ka serangan nu ngidinan Anjeun pikeun nangkep aksés ka akun ngaliwatan manipulasi karakter Unicode dina email. Masalahna nyaéta sababaraha karakter Unicode, nalika nganggo fungsi konversi hurup leutik atanapi ageung, ditarjamahkeun kana karakter biasa anu gayana sami (nalika sababaraha karakter anu béda ditarjamahkeun kana hiji karakter - contona, karakter Turki "ı" sareng "i". " nalika dirobih kana hurup ageung dirobih janten "I").

Sateuacan mariksa parameter login dina sababaraha ladenan sareng aplikasi, data anu disayogikeun ku pangguna dirobih heula kana hurup ageung atanapi handap teras dipariksa dina pangkalan data. Lamun hiji layanan ngidinan pamakéan karakter unicode dina login atawa email, mangka panyerang bisa ngagunakeun karakter unicode sarupa pikeun ngalakukeun serangan nu ngamanipulasi tabrakan dina Unicode Case Mapping Collisions.

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@Gıthub.com'.toUpperCase() == '[email dijaga]'.toUpperCase()

Attacker on GitHub bisa Ngaliwatan formulir pikeun cageur kecap akses anu hilap, mimitian ngirim kodeu pamulihan ka email anu sanés ku nunjukkeun dina formulir alamat anu kalebet karakter unicode anu nyababkeun tabrakan (contona, tinimbang [email dijaga] email m ieu dieusianı[email dijaga]). Alamatna lulus ujian sabab dirobih kana hurup ageung sareng cocog sareng alamat aslina ([email dijaga] ), tapi nalika ngirim surat éta digantikeun sareng kodeu pamulihan dikirim ka alamat palsu (mı[email dijaga]).

Sababaraha aksara, ngabalukarkeun tabrakan nalika ngarobah register:

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

sumber: opennet.ru

Tambahkeun komentar