ИзползванС Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ Unicode символи Π·Π° заобикалянС Π½Π° удостовСряванСто

GitHub ΠΎΠ·ΠΎΠ²Π°Π» Π΅ ΠΏΠΎΠ΄Π°Ρ‚Π»ΠΈΠ² Π½Π° Π°Ρ‚Π°ΠΊΠ°, която Π²ΠΈ позволява Π΄Π° конфискуватС Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Π°ΠΊΠ°ΡƒΠ½Ρ‚ Ρ‡Ρ€Π΅Π· ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π°Π½Π΅ Π½Π° Unicode символи Π² ΠΈΠΌΠ΅ΠΉΠ». ΠŸΡ€ΠΎΠ±Π»Π΅ΠΌΡŠΡ‚ Π΅, Ρ‡Π΅ някои символи Π½Π° Unicode, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ‚ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅ Π·Π° ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°Π»ΠΊΠΈ ΠΈΠ»ΠΈ Π³Π»Π°Π²Π½ΠΈ Π±ΡƒΠΊΠ²ΠΈ, сС ΠΏΡ€Π΅Π²Π΅ΠΆΠ΄Π°Ρ‚ Π² ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈ Π·Π½Π°Ρ†ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ са ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΠΎ стил (ΠΊΠΎΠ³Π°Ρ‚ΠΎ няколко Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ Π·Π½Π°ΠΊΠ° сС ΠΏΡ€Π΅Π²Π΅ΠΆΠ΄Π°Ρ‚ Π² Π΅Π΄ΠΈΠ½ Π·Π½Π°ΠΊ - Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ турският Π·Π½Π°ΠΊ "Δ±" ΠΈ "i" ", ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚ Π² Π³Π»Π°Π²Π½ΠΈ Π±ΡƒΠΊΠ²ΠΈ, сС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Ρ‚ Π² "I").

ΠŸΡ€Π΅Π΄ΠΈ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠ° Π½Π° ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅ Π·Π° Π²Π»ΠΈΠ·Π°Π½Π΅ Π² някои услуги ΠΈ прилоТСния, прСдоставСнитС ΠΎΡ‚ потрСбитСля Π΄Π°Π½Π½ΠΈ ΠΏΡŠΡ€Π²ΠΎ сС ΠΊΠΎΠ½Π²Π΅Ρ€Ρ‚ΠΈΡ€Π°Ρ‚ Π² Π³Π»Π°Π²Π½ΠΈ ΠΈΠ»ΠΈ ΠΌΠ°Π»ΠΊΠΈ Π±ΡƒΠΊΠ²ΠΈ ΠΈ слСд Ρ‚ΠΎΠ²Π° сС провСряват Π² Π±Π°Π·Π°Ρ‚Π° Π΄Π°Π½Π½ΠΈ. Ако Π΄Π°Π΄Π΅Π½Π° услуга позволява ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅Ρ‚ΠΎ Π½Π° ΡƒΠ½ΠΈΠΊΠΎΠ΄ символи Π² Π΄Π°Π½Π½ΠΈ Π·Π° Π²Ρ…ΠΎΠ΄ ΠΈΠ»ΠΈ ΠΈΠΌΠ΅ΠΉΠ», Ρ‚ΠΎΠ³Π°Π²Π° атакуващият ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΡƒΠ½ΠΈΠΊΠΎΠ΄ Π·Π½Π°Ρ†ΠΈ, Π·Π° Π΄Π° ΠΈΠ·Π²ΡŠΡ€ΡˆΠΈ Π°Ρ‚Π°ΠΊΠ°, която ΠΌΠ°Π½ΠΈΠΏΡƒΠ»ΠΈΡ€Π° ΡΠ±Π»ΡŠΡΡŠΡ†ΠΈ Π² Unicode Case Mapping Collisions.

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@GΔ±thub.com'.toUpperCase() == '[ΠΈΠΌΠ΅ΠΉΠ» Π·Π°Ρ‰ΠΈΡ‚Π΅Π½]'.toUpperCase()

НападатСл Π½Π° GitHub могъл Ρ‡Ρ€Π΅Π· формуляра Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°Π±Ρ€Π°Π²Π΅Π½Π° ΠΏΠ°Ρ€ΠΎΠ»Π° ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ€Π°ΠΉΡ‚Π΅ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΄Ρ€ΡƒΠ³ ΠΈΠΌΠ΅ΠΉΠ», ΠΊΠ°Ρ‚ΠΎ посочитС във формуляра адрСс, ΠΊΠΎΠΉΡ‚ΠΎ Π²ΠΊΠ»ΡŽΡ‡Π²Π° ΡƒΠ½ΠΈΠΊΠΎΠ΄ символ, ΠΊΠΎΠΉΡ‚ΠΎ причинява сблъсък (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ вмСсто [ΠΈΠΌΠ΅ΠΉΠ» Π·Π°Ρ‰ΠΈΡ‚Π΅Π½] Π΅ посочСн ΠΈΠΌΠ΅ΠΉΠ» mΔ±[ΠΈΠΌΠ΅ΠΉΠ» Π·Π°Ρ‰ΠΈΡ‚Π΅Π½]). ΠΠ΄Ρ€Π΅ΡΡŠΡ‚ ΠΏΡ€Π΅ΠΌΠΈΠ½Π° тСста, Π·Π°Ρ‰ΠΎΡ‚ΠΎ бСшС ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½ Π² Π³Π»Π°Π²Π½ΠΈ Π±ΡƒΠΊΠ²ΠΈ ΠΈ ΡΡŠΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²Π°ΡˆΠ΅ Π½Π° оригиналния адрСс ([ΠΈΠΌΠ΅ΠΉΠ» Π·Π°Ρ‰ΠΈΡ‚Π΅Π½] ), Π½ΠΎ ΠΏΡ€ΠΈ ΠΈΠ·ΠΏΡ€Π°Ρ‰Π°Π½Π΅ Π½Π° писмото Ρ‚ΠΎ бСшС Π·Π°ΠΌΠ΅Π½Π΅Π½ΠΎ ΠΊΠ°ΠΊΡ‚ΠΎ Π΅ ΠΈ ΠΊΠΎΠ΄ΡŠΡ‚ Π·Π° Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ бСшС ΠΈΠ·ΠΏΡ€Π°Ρ‚Π΅Π½ Π½Π° Ρ„Π°Π»ΡˆΠΈΠ² адрСс (mΔ±[ΠΈΠΌΠ΅ΠΉΠ» Π·Π°Ρ‰ΠΈΡ‚Π΅Π½]).

Някои ΠΎΡ‚ Π·Π½Π°Ρ†ΠΈ, причинявайки ΡΠ±Π»ΡŠΡΡŠΡ†ΠΈ ΠΏΡ€ΠΈ ΠΏΡ€Π΅ΠΎΠ±Ρ€Π°Π·ΡƒΠ²Π°Π½Π΅ Π½Π° Ρ€Π΅Π³ΠΈΡΡ‚ΡŠΡ€Π°:

ß 0x00DF SS
Δ± 0x0131 I
ΕΏ 0x017F S
ff 0xFB00 FF
fi 0xFB01 FI
fl 0xFB02 FL
οƒ˜ 0xFB03 FFI
0xFB04 FFL
ο…… 0xFB05 ST
 0xFB06 ST
K 0x212A k

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: opennet.ru

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€