Paggamit ng Katulad na Unicode Character para I-bypass ang Authentication

GitHub naka ay madaling kapitan sa isang pag-atake na nagbibigay-daan sa iyong kunin ang access sa isang account sa pamamagitan ng pagmamanipula ng mga Unicode character sa email. Ang problema ay ang ilang mga Unicode na character, kapag gumagamit ng lowercase o uppercase na mga function ng conversion, ay isinasalin sa mga regular na character na katulad ng istilo (kapag ang ilang magkakaibang mga character ay isinalin sa isang character - halimbawa, ang Turkish na character na "Δ±" at "i " kapag na-convert sa upper case ay na-convert sa "I").

Bago suriin ang mga parameter sa pag-log in sa ilang mga serbisyo at application, ang data na ibinigay ng user ay unang iko-convert sa upper o lower case at pagkatapos ay i-check sa database. Kung pinapayagan ng isang serbisyo ang paggamit ng mga unicode na character sa isang login o email, maaaring gumamit ang isang attacker ng mga katulad na unicode character upang magsagawa ng pag-atake na nagmamanipula ng mga banggaan sa Unicode Case Mapping Collisions.

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@GΔ±thub.com'.toUpperCase() == '[protektado ng email]'.toUpperCase()

Attacker sa GitHub kaya sa pamamagitan ng form para sa pagbawi ng nakalimutang password, simulan ang pagpapadala ng recovery code sa isa pang email sa pamamagitan ng pagpahiwatig sa form ng address na may kasamang unicode character na nagdudulot ng banggaan (halimbawa, sa halip na [protektado ng email] ipinahiwatig ang email mΔ±[protektado ng email]). Ang address ay pumasa sa pagsubok dahil ito ay na-convert sa uppercase at tumugma sa orihinal na address ([protektado ng email] ), ngunit noong ipinadala ang liham ay pinalitan ito at ang code sa pagbawi ay ipinadala sa isang pekeng address (mΔ±[protektado ng email]).

Ilan sa mga character, na nagiging sanhi ng mga banggaan kapag nagko-convert ng rehistro:

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

Pinagmulan: opennet.ru

Magdagdag ng komento