GitHub جيثب: عرضة للهجوم الذي يسمح لك بالاستيلاء على الوصول إلى الحساب من خلال التلاعب بأحرف Unicode في البريد الإلكتروني. تكمن المشكلة في أن بعض أحرف Unicode، عند استخدام وظائف التحويل للأحرف الصغيرة أو الكبيرة، تتم ترجمتها إلى أحرف عادية متشابهة في الأسلوب (عندما تتم ترجمة عدة أحرف مختلفة إلى حرف واحد - على سبيل المثال، الحرف التركي "ı" و"i" " عند تحويلها إلى أحرف كبيرة يتم تحويلها إلى "I").
قبل التحقق من معلمات تسجيل الدخول في بعض الخدمات والتطبيقات، يتم أولاً تحويل البيانات المقدمة من المستخدم إلى أحرف كبيرة أو صغيرة ثم يتم فحصها في قاعدة البيانات. إذا كانت الخدمة تسمح باستخدام أحرف Unicode في تسجيل الدخول أو البريد الإلكتروني، فيمكن للمهاجم استخدام أحرف Unicode مماثلة لتنفيذ هجوم يعالج التصادمات في Unicode Case Mapping Collisions.
'ß'.toUpperCase() == 'ss'.toUpperCase() // 0x0131
'K'.toLowerCase() == 'K'.toLowerCase() // 0x212A
'John@Github.com'.toUpperCase() == 'John@Github.com'.toUpperCase()
المهاجم على جيثب من خلال نموذج استرداد كلمة المرور المنسية، ابدأ في إرسال رمز الاسترداد إلى بريد إلكتروني آخر من خلال تحديد عنوان في النموذج يتضمن حرف Unicode يتسبب في حدوث تصادم (على سبيل المثال، بدلاً من mike@example.org، تم تحديد البريد الإلكتروني mıتم التحقق من العنوان بتحويله إلى أحرف كبيرة ومطابقته للعنوان الأصلي (mike@example.org)، ولكن عند إرسال الرسالة، تم استبداله كما هو، وتم إرسال رمز الاسترداد إلى عنوان مزيف (mı(ke@example.org).
بعض مما تسبب في حدوث تصادمات عند تحويل السجل:
ß 0x00DF SS
0x0131 أنا
0x017F س
- 0xFB00 FF
فاي 0xFB01 FI
uld 0xfb02 fl
eac 0xfb03 FFI
ffl 0xFB04 FFL
ſt 0xFB05 ST
st 0xFB06 ST
ك 0x212A ك
المصدر: opennet.ru
