
common-user-management هو تطبيق Spring Boot قوي يوفر خدمات إدارة المستخدمين المصممة للتحكم في وصول المستخدمين ديناميكيًا. توجد ثغرة أمنية حرجة في نقطة النهاية /api/v1/customer/profile-picture. تسمح نقطة النهاية هذه برفع الملفات دون تحقق أو قيود مناسبة مما يؤدي إلى (RCE)
اكتشفت ثغرة أمنية حرجة في common-user-management، وهو تطبيق Spring Boot قوي مزود بخدمات إدارة المستخدمين مصممة للتحكم في وصول المستخدمين ديناميكيًا. تؤثر هذه الثغرة على نقطة النهاية /api/v1/customer/profile-picture، مما يسمح للمهاجمين برفع الملفات دون التحقق السليم، مما قد يؤدي إلى تنفيذ التعليمات البرمجية عن بُعد (RCE).
يمكنك استغلال هذه الثغرة باستخدام سكريبت Python التالي:
python exploit.py -u "customer_user" -p "your_password" -f "malicious.jsp" -url "https://target.com"
-u: اسم المستخدم
-p: كلمة المرور
-f: الملف الخبيث المراد رفعه
-url: عنوان الهدف
توجد ثغرة أمنية حرجة في نقطة النهاية /api/v1/customer/profile-picture. تسمح هذه النقطة برفع الملفات دون التحقق السليم أو القيود، مما يمكّن المهاجمين من رفع ملفات خبيثة قد تؤدي إلى تنفيذ التعليمات البرمجية عن بُعد (RCE).
ينبع المشكلة من عدم التحقق من امتداد الملف ورأس Content-Type. ونتيجة لذلك، يسمح التطبيق برفع ملفات عشوائية، بما في ذلك:
يمكن بعد ذلك تنفيذ هذه الملفات بواسطة خادم الويب، مما يسمح للمهاجمين بتنفيذ تعليمات برمجية عشوائية على الخادم، مما قد يؤدي إلى اختراق النظام بالكامل.
رفع الملف الخبيث:
أرسل طلب PUT إلى /api/v1/customer/profile-picture باستخدام مستخدم مع دور 26,17 مضافاً مع حمولة ملف خبيث (مثلاً .jsp أو .php أو .html).
الحصول على موقع الملف:
أرسل طلب GET إلى /api/v1/customer/my-profile، واستخرج موقع الملف من الاستجابة عبر رابط الملف الشخصي.
تنفيذ الملف المرفوع: باستخدام اسم الملف، قم بالوصول إليه مباشرة عبر عنوان URL الذي تم إرجاعه في الاستجابة. إذا كان الخادم يدعم نوع الملف المرفوع، فسيقوم بتنفيذ الملف، مما يؤدي إلى تنفيذ التعليمات البرمجية عن بُعد.