Lilo Awọn ohun kikọ Unicode ti o jọra lati fori Ijeri

GitHub pari ni ifaragba si ikọlu ti o fun ọ laaye lati gba iraye si akọọlẹ kan nipasẹ ifọwọyi awọn ohun kikọ Unicode ninu imeeli. Iṣoro naa ni pe diẹ ninu awọn ohun kikọ Unicode, nigba lilo kekere tabi awọn iṣẹ iyipada nla, ni a tumọ si awọn ohun kikọ deede ti o jọra ni ara (nigbati ọpọlọpọ awọn kikọ oriṣiriṣi ba tumọ si ohun kikọ kan - fun apẹẹrẹ, ihuwasi Tọki “ı” ati “i” "nigbati o ba yipada si ọran oke ni iyipada si "I").

Ṣaaju ki o to ṣayẹwo awọn aye iwọle ni diẹ ninu awọn iṣẹ ati awọn ohun elo, data ti olumulo ti pese ni akọkọ yipada si oke tabi kekere lẹhinna ṣayẹwo ni ibi ipamọ data. Ti iṣẹ kan ba gba laaye lilo awọn ohun kikọ unicode ni iwọle tabi imeeli, lẹhinna ikọlu le lo awọn ohun kikọ unicode ti o jọra lati ṣe ikọlu ti o ṣe ifọwọyi awọn ikọlu ni Awọn ikọlu maapu Case Unicode.

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@Gıthub.com'.toUpperCase() == '[imeeli ni idaabobo]'.siUpperCase()

Attacker lori GitHub Le nipasẹ fọọmu fun gbigbapada ọrọ igbaniwọle ti o gbagbe, bẹrẹ fifiranṣẹ koodu imularada si imeeli miiran nipa fifihan ninu fọọmu adirẹsi ti o pẹlu ohun kikọ unicode ti o fa ikọlu (fun apẹẹrẹ, dipo [imeeli ni idaabobo] imeeli m ni itọkasiı[imeeli ni idaabobo]). Adirẹsi naa kọja idanwo naa nitori pe o yipada si oke nla ati pe o baamu adirẹsi atilẹba naa ([imeeli ni idaabobo] ), ṣugbọn nigba fifiranṣẹ lẹta naa o ti rọpo bi o ti jẹ ati pe a fi koodu imularada ranṣẹ si adirẹsi iro (mı[imeeli ni idaabobo]).

Diẹ ninu awọn ohun kikọ, nfa ikọlu nigba iyipada iforukọsilẹ:

ß 0x00DF SS
0x0131 I
0x017F S
0xFB00 FF
0xFB01 FI
0xFB02 FL
0xFB03 FFI
ffl 0xFB04 FFL
0xFB05 ST
0xFB06 ST
K 0x212A k

orisun: opennet.ru

Fi ọrọìwòye kun