
توثيق CVE-2022-22828
وجدت Viden Labs ثغرة مراجع الكائنات المباشرة غير الآمنة (IDOR) في SynaMan من Synametrics. هذه الثغرة موجودة في الإصدار 4.9 والإصدارات الأقدم.
تم إصلاح هذه الثغرة منذ ذلك الحين في الإصدار 5.0.
"مراجع الكائنات المباشرة غير الآمنة (IDOR) هي نوع من ثغرات التحكم في الوصول تنشأ عندما يستخدم التطبيق مدخلات يقدمها المستخدم للوصول إلى الكائنات مباشرة." - https://portswigger.net/web-security/access-control/idor.
يمكن استغلال الثغرة مما يؤدي إلى الوصول إلى ملفات (ربما حساسة) في المجلد الرئيسي لمستخدم SynaMan (بما في ذلك المجلدات الفرعية)، والتي لا يملك المستخدم إذنًا للوصول إليها.
مستخدم SynaMan باسم "internaluser". كان هذا المستخدم منضمًا إلى AD لكن لا يحدث فرقًا إذا لم يكن منضمًا إلى AD.
في المجلد الرئيسي للمستخدم internaluser، يوجد ملفان:
الشكل 1: دليل المستخدم مع الملفات
تم إنشاء رابط تنزيل لملف file-download.docx ومشاركته مع طرف خارجي محاكى.
الشكل 2: صفحة تنزيل الملفات في SynaMan
تم إجراء اختبار تطبيق الويب من شبكة 10.0.2.0/24، باستخدام Burp Suite على Kali.
يعمل مثيل Windows Server 2019 بتكوين افتراضي، مع تطبيق أحدث التحديثات الأمنية، والمنفذ 443 مفتوحًا للاتصالات الواردة.
تم تكوين SynaMan وفقًا لأفضل الممارسات، باتباع الإرشادات الواردة من موقع Synametrics Technologies.
يوضح الشكل 3 أدناه نظرة عامة على إعداد الشبكة لاختبار المختبر.

الشكل 3: طوبولوجيا اختبار SynaMan
| الكمبيوتر | الدور | OS | المتصفح |
|---|---|---|---|
| 10.0.2.30 | خادم اختبار تطبيقات الويب | Kali Linux (VM) | متصفح Burp Suite المدمج |
| 10.0.3.50 | خادم SynaMan | Windows Server 2019 (VM) | لا ينطبق |
الجدول 1 - معلومات إعداد إضافية
تم اكتشاف ثغرة عندما يصل طرف خارجي إلى رابط تنزيل، إما تمت مشاركته معه، أو تم العثور عليه عن طريق البحث في جوجل عن "pubopp?". يحتوي ارتباط تنزيل الملف على اسم ملف مشفر بـ base64، بما في ذلك المسار. يمكن تعديل هذا المسار لتنزيل ملفات أخرى من مجلد المستخدم لم تتم مشاركتها. بينما يتطلب هذا من المهاجم تخمين اسم ملف بشكل صحيح، فإن أدوات مثل Burp Suite تجعل هذا الهجوم بالقوة الغاشمة تافهًا ومؤتمتًا. تم توضيح تمثيل رسومي لذلك في الشكل 4 أدناه.

الشكل 4: تمثيل رسومي لثغرة طلب GET
يظهر أدناه في الشكل 5 طلب GET الناتج عند النقر على رابط التنزيل.

الشكل 5: طلب GET في Burp Suite
يُظهر فحص اسم الملف المشفر بـ base64 (الممرر كمعامل باسم "fn") موقع الملف.

الشكل 6: اسم ملف base64 في Burp Suite
باستخدام Burp Suite، يمكن تعديل ذلك إلى اسم ملف آخر، واستبداله في طلب GET. لهذا المثال، سنستخدم "secret.txt"، لأننا نعرف أن هذا الملف موجود في المجلد.

الشكل 7: اسم ملف base64 المعدل في Burp Suite

الشكل 8: طلب GET المعدل في Burp Suite
يتيح لنا إرسال طلب GET المعدل تنزيل الملف الذي لم تتم مشاركته، كما هو موضح في الشكل 9 أدناه.

الشكل 9: تنزيل غير مصرح به في SynaMan
لا توفر إعدادات الأمان المتاحة حاليًا في SynaMan تحكمًا للتخفيف من هذا الهجوم، ومع ذلك يتم تسجيل جميع الملفات التي تم تنزيلها.