عند إدخال حسابات شخصية لمختلف الخدمات ، لأغراض الأمان ، غالبًا ما يتم استخدام 2FA - بالإضافة إلى تسجيل الدخول وكلمة المرور ، تحتاج إلى إدخال رمز لمرة واحدة.
ولكن ، كما اتضح ، ليس كل شيء آمنًا حتى مع المصادقة الثنائية - في العام الماضي ، وجدت ثلاث خدمات (!) عندما يمكن عرض رمز تسجيل دخول لمرة واحدة ، يتم إرساله إلى العميل عبر الرسائل القصيرة ، في الطلب نفسه.
لفترة وجيزة حول ما هدد بأمثلة محددة.
1. شبكة شعبية من محطات الوقود ، أكثر من 500000 عميل مسجل.طلب عند إدخال نسخة الويب من حسابك الشخصي:POST https://someazs.ua/ua/profile/auth/ Accept: application/json, text/javascript, */*; q=0.01 Accept-Encoding: gzip, deflate, br Accept-Language: ru,en-US;q=0.9,en;q=0.8,uk;q=0.7 Connection: keep-alive Content-Length: 408 Content-Type: application/x-www-form-urlencoded; charset=UTF-8 Cookie: PHPSESSID=6n3l2o90hfb020u9ag020u8ha1; usersomeazs_popupcoupons=1;... Host: someazs.ua Origin: https://someazs.ua Referer: https://someazs.ua/ua/login/ User-Agent: Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/71.0.3578.98 Safari/537.36 X-Compress: null X-Requested-With: XMLHttpRequest data[phone_mask]: 951234567 data[phone]: 0951234567

الإجابة:
{"Status":0,"Code":"7038","status":true,"step2":true}
الرمز من SMS - 7038 - مرئي ببساطة في استجابة الخادم.
وهذا هو ، في الموقع ، عند إدخال الحساب الشخصي ، يحتوي الرد على رمز تسجيل دخول لمرة واحدة ، يتم إرساله إلى العميل عن طريق الرسائل القصيرة - يمكنك تسجيل الدخول إلى حساب شخص آخر عن طريق تحديد رقم هاتف العميل فقط وإلقاء نظرة على OTP في الطلب نفسه.
في حسابك الشخصي متاح: رقم بطاقة الولاء ، الاسم ، الرصيد (مكافأة في UAH ، لتر ، قهوة) ، سجل المعاملات ، في الإعدادات - تاريخ الميلاد ، بريد العميل الإلكتروني ، إلخ.

بمساعدة إجراءات أخرى ذات طبيعة غير تقنية (على سبيل المثال ، رنين العميل) ، مع الحظ المناسب ، يمكن للمرء استخدام أموال العميل / لتر / القهوة. لماذا أكتب "حظا سعيدا"؟ عندما تحدثت عن المشكلة ، أُبلغت أن تسويات مكافآت الأشخاص الآخرين ليست بالأداء السهل ، حتى لو كان لديك حق الوصول إلى الحساب ، حيث توجد عمليات فحص إضافية. ومع ذلك ...
تم تصحيح الخطأ بسرعة ، شكر.
2. شبكة من المتاجر الاجتماعية (على غرار Fix-Price ) ، أحد تطبيقات الهاتف المحمول (أكثر من 100 ألف تنزيل)
عند تتبع الطلبات من خلال Fiddler ، لاحظت ما يلي. عند إدخال تطبيق الهاتف المحمول ، وبعد إدخال رقم الهاتف وبطاقة الولاء ، يتم إرسال رمز لمرة واحدة إلى العميل.
المشكلة هي أنه ينفذ طلب GET للنموذج:
https://bulk.somesmssender.com/?sending_method=sms&from=someretailes&user=onviber4821&txt=%D0%9A%D0%BE%D0%B4+%D0%BF%D0%BE%D0%B4%D1%82%D0%B2%D0%B5%D1%80%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F%3A+1234&phone=380987654321&sign=42f66957a03090eb90556b0ef7fed2e1
يكون الرمز لمرة واحدة نفسه مرئيًا مباشرةً في هذا الطلب: نص رسالة SMS المرسلة هو
%D0%9A%D0%BE%D0%B4+%D0%BF%D0%BE%D0%B4%D1%82%D0%B2%D0%B5%D1%80%D0%B6%D0%B4%D0%B5%D0%BD%D0%B8%D1%8F%3A+1234&
تقارير تحويل بسيطة: رمز التأكيد: +1234

أي في التطبيق نفسه ، يمكنك معرفة الرمز الذي سيتم إرساله. هنا يمكنك أيضًا الدخول إلى حسابات الآخرين ، بالفعل دون وجود عامل ثانٍ.
لسبب ما ، فإن عملاء هذه الشبكة هم الأقل حماية من الاحتيال ، لذلك حاولت عدة مرات نقل المعلومات إلى الشركة. كتبت ثلاث مرات في أغسطس إلى العنوان المشار إليه في صفحة التطبيق في سوق Play - لم أتلق إجابة واحدة ، حتى إجابة تلقائية.
فيما بعد كتبت إلى شركة يستخدمون خدمة توزيع الرسائل النصية القصيرة. أجابوا لي أنه من الضروري الاتصال بمالك تطبيق الهاتف المحمول ، لأنه لا يمكنهم ، من جانبهم ، التأثير على تطوير ونقل المعلومات من هذه الشركة.
هذا صحيح ، لكنني افترضت أن خدمة المراسلة قد تؤثر عليهم كشريك / عميل. بالإضافة إلى ذلك ، فإن السبب في أنني كتبت إلى خدمة البريد هو أن طلب GET الذي حددته هو بالتحديد تطويرها ، ويمكن على الأرجح أن يواجه العملاء الآخرون نفس الموقف. اقترحت أنه سيكون من المرغوب فيه للخدمة أن تصحح منطق التوزيع - وليس لنقل كل من أرقام هواتف العملاء ورمز لمرة واحدة في الطلب - لم يردوا.
قليلا عن كيف حاولت أن أنقل المشكلةثم ، على موقع المتجر الإلكتروني ، كتبت على البريد الإلكتروني لجهة الاتصال ، انتظرت - ولا شيء مرة أخرى. لكن بما أنني عنيدة ، فقد وجدت في نفس الموقع جميع جهات الاتصال الممكنة (كل من صناديق البريد العامة والعناوين الشخصية) وكتبت إليهم - كما تعلمون ، لم يرد أحد على ذلك.
لذلك ، التفتت لاحقًا إلى الدردشة وسألت مباشرةً في الدردشة السؤال عما إذا كانوا تلقوا رسائلي. في البداية أجابوا أنهم لم يروا ، ثم وجدوا ووعدوا بتقديمه.
ومن المثير للاهتمام ، بالإضافة إلى عدم وجود رد فعل على البريد الإلكتروني على العنوان الرئيسي للتطبيق ، بعد الدردشة تلقيت رسائل. في واحد منهم رأيت كيف أحضروني إلى النظام: "رجل ذكي"

ما في ذلك الموقف تجاه العميل.
عندما راجعت آخر مرة ، لم يكن هناك إصلاح من
Avrora .
لم تكن هناك أيضًا تصحيحات من جانب خدمة التوزيع ، لكن الموقف أكثر خطورة هنا ، لذلك لا أشير مباشرةً إلى اسم الخدمة.
3. تطبيق المحمول لتخزين بطاقات الخصم وجعل المدفوعات عبر الهاتف المحمول (أكثر من 130 ألف عميل)عند المدخل ، تحتاج إلى إدخال البريد الإلكتروني والرمز فقط. في هذه الحالة ، يتم تنفيذ الاستعلام:
POST http://api.somewallet.com/mobileclient.svc/getRegistrationCode HTTP/1.1 Content-Type: application/json; charset=UTF-8 Content-Length: 100 Host: api.somewallet.com Connection: Keep-Alive Accept-Encoding: gzip User-Agent: okhttp/3.12.3 {"request":{"Culture":"ru_RU","DeviceIdentifier":"4514825570005447","Identifier":"some@email"}}
هنا الجواب:
{"GetRegistrationCodeResult":{"ErrorMessage":{"Code":0,"LogReferenceId":0,"Message":"SUCCESS"},"Data":{"Code":"044912"}}}
هنا ، توضح الإجابة أيضًا الرمز الذي يجب إدخاله (044912).
بعد تسجيل الدخول ، تمكنت من الوصول إلى الوظائف التالية:
- عرض بطاقات الولاء والمكافآت عليها ،
- كوبونات لبعض المتاجر ،
- معلومات الاتصال حول العميل (أرقام الهواتف والبريد الإلكتروني ، تاريخ الميلاد والاسم)
- إعداد وتغيير وحذف رمز وصول مكون من 4 أرقام ،
- عرض بطاقات الدفع
- تلقي رمز دفع (على غرار الرمز المميز في مقالتي السابقة: كيفية ركوب سيارة أجرة على حساب شخص آخر ).
وبالتالي ، يمكن الوصول إلى جميع وظائف التطبيق لأي شخص يشير ببساطة إلى عنوان البريد الإلكتروني لمستخدم هذا التطبيق - لا تحتاج إلى معرفة رمز لمرة واحدة من المستخدم ، حيث يكون مرئيًا فور الدخول. المشكلة مماثلة للآخرين.
لقد استجابوا لرسالتي ، وحددوا الثغرة الأمنية وشكروها مالياً.
يمكننا أن نقول أنه في بعض الأحيان في الخدمات يمكنك تجاوز المصادقة ثنائية العامل فقط من خلال النظر في طلبات التفويض. وهذا يؤثر على كل من المواقع والتطبيقات المحمولة. لذلك في المرة القادمة التي تقوم فيها بتطوير أو اختبار الخدمات باستخدام حساب شخصي ، يجب الانتباه إلى ذلك.