Utilizà Caratteri Unicode Simili per ignora l'autenticazione

GitHub finì hè suscettibile à un attaccu chì vi permette di piglià l'accessu à un contu attraversu a manipulazione di caratteri Unicode in e-mail. U prublema hè chì certi caratteri Unicode, quandu utilizanu e funzioni di cunversione minuscule o maiuscule, sò tradutti in caratteri regulari chì sò simili in stile (quandu parechji caratteri diffirenti sò tradotti in un caratteru - per esempiu, u caratteru turcu "ı" è "i". " quandu cunvertiti in maiuscule sò cunvertiti in "I").

Prima di verificà i paràmetri di login in certi servizii è applicazioni, i dati furniti da l'utilizatori sò prima cunvertiti in maiuscule o minuscule è dopu verificati in a basa di dati. Se un serviziu permette l'usu di caratteri Unicode in un login o email, allora un attaccu pò aduprà caratteri Unicode simili per fà un attaccu chì manipula i collisioni in Unicode Case Mapping Collisions.

'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@Gıthub.com'.toUpperCase() == '[email prutettu]'.toUpperCase()

Attaccu nantu à GitHub puderia à traversu u furmulariu per ricuperà una password scurdata, inizià l'inviu di un codice di ricuperazione à un altru email indichendu in a forma un indirizzu chì include un caratteru unicode chì provoca una collisione (per esempiu, invece di [email prutettu] email m hè statu indicatuı[email prutettu]). L'indirizzu hà passatu a prova perchè era cunvertitu in majuscule è currisponde à l'indirizzu originale ([email prutettu] ), ma quandu hà mandatu a lettera hè stata sustituita cum'è hè è u codice di ricuperazione hè statu mandatu à un indirizzu falsu (mı[email prutettu]).

Certi di caratteri, pruvucannu scontri durante a cunversione di u registru:

ß 0x00DF SS
I 0x0131 I
ſ 0x017F S
ff 0xFB00 FF
fi 0xFB01 FI
fl 0xFB02 FL
ffi 0xFB03 FFI
ffl 0xFB04 FFL
ſt 0xFB05 ST
st 0xFB06 ST
K 0x212A k

Source: opennet.ru

Add a comment