Menggunakan Aksara Unikod Serupa untuk Memintas Pengesahan

GitHub ternyata terdedah kepada serangan yang membolehkan anda merampas akses kepada akaun melalui manipulasi aksara Unicode dalam e-mel. Masalahnya ialah sesetengah aksara Unicode, apabila menggunakan fungsi penukaran huruf kecil atau huruf besar, diterjemahkan ke dalam aksara biasa yang serupa dalam gaya (apabila beberapa aksara berbeza diterjemahkan ke dalam satu aksara - contohnya, aksara Turki "Δ±" dan "i " apabila ditukar kepada huruf besar ditukar kepada "I").

Sebelum menyemak parameter log masuk dalam sesetengah perkhidmatan dan aplikasi, data yang dibekalkan pengguna terlebih dahulu ditukar kepada huruf besar atau kecil dan kemudian disemak dalam pangkalan data. Jika perkhidmatan membenarkan penggunaan aksara unikod dalam log masuk atau e-mel, maka penyerang boleh menggunakan aksara unikod yang serupa untuk menjalankan serangan yang memanipulasi perlanggaran dalam Unicode Case Mapping Collisions.

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@GΔ±thub.com'.toUpperCase() == '[e-mel dilindungi]'.toUpperCase()

Penyerang di GitHub boleh melalui borang untuk memulihkan kata laluan yang terlupa, mulakan menghantar kod pemulihan ke e-mel lain dengan menunjukkan dalam borang alamat yang mengandungi aksara unikod yang menyebabkan perlanggaran (contohnya, bukannya [e-mel dilindungi] e-mel m telah dinyatakanΔ±[e-mel dilindungi]). Alamat lulus ujian kerana ia telah ditukar kepada huruf besar dan sepadan dengan alamat asal ([e-mel dilindungi] ), tetapi apabila menghantar surat itu ia digantikan seperti sedia ada dan kod pemulihan dihantar ke alamat palsu (mΔ±[e-mel dilindungi]).

Sebahagian daripada символов, menyebabkan perlanggaran semasa menukar daftar:

ß 0x00DF SS
i 0x0131 I
ΕΏ 0x017F S
ff 0xFB00 FF
fi 0xFB01 FI
ο‚‚ 0xFB02 FL
ffi 0xFB03 FFI
ffl 0xFB04 FFL
ο¬… 0xFB05 ST
st 0xFB06 ST
K 0x212A k

Sumber: opennet.ru

Tambah komen