Նույնական Unicode նիշերի օգտագործումը նույնականացումը շրջանցելու համար

GitHub դիմել ենթակա է հարձակման, որը թույլ է տալիս գրավել մուտքը հաշիվ՝ էլ.փոստի Unicode նիշերի մանիպուլյացիայի միջոցով: Խնդիրն այն է, որ Յունիկոդի որոշ նիշեր, փոքրատառ կամ մեծատառ փոխակերպման գործառույթներն օգտագործելիս, թարգմանվում են ոճով նման սովորական նիշերի (երբ մի քանի տարբեր նիշ թարգմանվում են մեկ նիշի, օրինակ՝ թուրքերեն «ı» և «i» նիշերը։ երբ վերածվում են մեծատառի, վերածվում են «I»):

Նախքան որոշ ծառայություններում և հավելվածներում մուտքի պարամետրերը ստուգելը, օգտագործողի կողմից տրամադրված տվյալները սկզբում վերածվում են մեծատառերի կամ փոքրատառերի, այնուհետև ստուգվում են տվյալների բազայում: Եթե ​​ծառայությունը թույլ է տալիս օգտագործել յունիկոդի նիշերը մուտքի կամ էլփոստի մեջ, ապա հարձակվողը կարող է օգտագործել նմանատիպ յունիկոդ նիշեր՝ հարձակում իրականացնելու համար, որը շահարկում է բախումները Unicode Case Mapping Collisions-ում:

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@Gıthub.com'.toUpperCase() == '[էլեկտրոնային փոստով պաշտպանված]'.toUpperCase()

Հարձակվող GitHub-ի վրա կարող է Մոռացված գաղտնաբառի վերականգնման ձևի միջոցով նախաձեռնեք վերականգնման ծածկագիր ուղարկել մեկ այլ էլ. [էլեկտրոնային փոստով պաշտպանված] նշվել է էլ. մı[էլեկտրոնային փոստով պաշտպանված]) Հասցեն անցել է թեստը, քանի որ այն վերածվել է մեծատառի և համապատասխանել է սկզբնական հասցեին ([էլեկտրոնային փոստով պաշտպանված] ), բայց նամակն ուղարկելիս այն փոխարինվել է այնպես, ինչպես կա, և վերականգնման ծածկագիրը ուղարկվել է կեղծ հասցեով (մ.ı[էլեկտրոնային փոստով պաշտպանված]).

Ոմանք խորհրդանիշներռեգիստրը փոխակերպելիս բախումներ առաջացնելով.

ß 0x00DF SS
0x0131 I
ſ 0x017F Ս
0xFB00 FF
 0xFB01 FI
FL 0xFB02 FL
 0xFB03 FFI
ffl 0xFB04 FFL
ſt 0xFB05 ST
st 0xFB06 ST
K 0x212A k

Source: opennet.ru

Добавить комментарий