CVE-2021-46080
عنوان الثغرة: نظام إدارة خدمة المركبات - تزوير طلب عبر المواقع (CSRF) متعدد يؤدي إلى تخزين البرمجة النصية عبر المواقع (XSS)
CVE: CVE-2021-46080
CVSS: 4.8 متوسط
المراجع:
الوصف:
توجد ثغرة تزوير طلب عبر المواقع (CSRF) في نظام إدارة خدمة المركبات الإصدار 1.0. يؤدي هجوم CSRF ناجح إلى ثغرة تخزين البرمجة النصية عبر المواقع (XSS).
1. نظام إدارة خدمة المركبات - 'قائمة الميكانيكيين' (/admin/?page=mechanics)
الاستغلال:
- قم بزيارة لوحة الإدارة http://localhost/vehicle_service/admin
- أنشئ حسابين للمسؤول.
- سجل الدخول بحساب المسؤول-1 في المتصفح أ (Chrome)
- سجل الدخول بحساب المسؤول-2 في المتصفح ب (Firefox)
- في حساب المسؤول-1 (Chrome) انتقل إلى قسم قائمة الميكانيكيين وانقر على زر إنشاء جديد.
- قم بحقن الحمولة التالية في حقل الإدخال "الاسم الكامل".
الحمولة:
"><script>alert(document.cookie)</script>
- انقر على زر حفظ.
- التقط الطلب في burpsuite وأنشئ ملف HTML للـ CSRF.
- احفظ ملف HTML للـ CSRF مثال: CSRF.html
- في المتصفح ب (Firefox) تصفح ملف CSRF.html.
- انتقل إلى قسم قائمة الميكانيكيين في المتصفح ب (Firefox).
- تم تشغيل كود جافاسكريبت ضار.
2. نظام إدارة خدمة المركبات - 'طلبات الخدمة' (/admin/?page=service_requests)
الاستغلال:
- قم بزيارة لوحة الإدارة http://localhost/vehicle_service/admin
- أنشئ حسابين للمسؤول.
- سجل الدخول بحساب المسؤول-1 في المتصفح أ (Chrome)
- سجل الدخول بحساب المسؤول-2 في المتصفح ب (Firefox)
- في حساب المسؤول-1 (Chrome) انتقل إلى قسم طلبات الخدمة وانقر على زر إنشاء جديد.
- قم بحقن الحمولة التالية في حقل الإدخال "جهة اتصال المالك".
الحمولة:
"><script>alert(document.cookie)</script>
- انقر على زر حفظ الطلب.
- التقط الطلب في burpsuite وأنشئ ملف HTML للـ CSRF.
- احفظ ملف HTML للـ CSRF مثال: CSRF.html
- في المتصفح ب (Firefox) تصفح ملف CSRF.html.
- انتقل إلى قسم طلبات الخدمة في المتصفح ب (Firefox).
- اختر طلب الخدمة المنشأ حديثًا وانقر على إجراء ضمن عرض.
- تم تشغيل كود جافاسكريبت ضار.
3. نظام إدارة خدمة المركبات - 'قائمة الفئات' (/admin/?page=maintenance/category)
الاستغلال:
- قم بزيارة لوحة الإدارة http://localhost/vehicle_service/admin
- أنشئ حسابين للمسؤول.
- سجل الدخول بحساب المسؤول-1 في المتصفح أ (Chrome)
- سجل الدخول بحساب المسؤول-2 في المتصفح ب (Firefox)
- في حساب المسؤول-1 (Chrome) انتقل إلى قسم قائمة الفئات وانقر على زر إنشاء جديد.
- قم بحقن الحمولة التالية في حقل الإدخال "اسم الفئة".
الحمولة:
"><script>alert(document.cookie)</script>
- انقر على زر حفظ.
- التقط الطلب في burpsuite وأنشئ ملف HTML للـ CSRF.
- احفظ ملف HTML للـ CSRF مثال: CSRF.html
- في المتصفح ب (Firefox) تصفح ملف CSRF.html.
- انتقل إلى قسم قائمة الفئات في المتصفح ب (Firefox).
- تم تشغيل كود جافاسكريبت ضار.
4. نظام إدارة خدمة المركبات - 'قائمة الخدمات' (/admin/?page=maintenance/services)
الاستغلال:
- قم بزيارة لوحة الإدارة http://localhost/vehicle_service/admin
- أنشئ حسابين للمسؤول.
- سجل الدخول بحساب المسؤول-1 في المتصفح أ (Chrome)
- سجل الدخول بحساب المسؤول-2 في المتصفح ب (Firefox)
- في حساب المسؤول-1 (Chrome) انتقل إلى قسم قائمة الخدمات وانقر على زر إنشاء جديد.
- قم بحقن الحمولة التالية في حقل الإدخال "اسم الخدمة".
الحمولة:
"><script>alert(document.cookie)</script>
- انقر على زر حفظ.
- التقط الطلب في burpsuite وأنشئ ملف HTML للـ CSRF.
- احفظ ملف HTML للـ CSRF مثال: CSRF.html
- في المتصفح ب (Firefox) تصفح ملف CSRF.html.
- انتقل إلى قسم قائمة الخدمات في المتصفح ب (Firefox).
- تم تشغيل كود جافاسكريبت ضار.
5. نظام إدارة خدمة المركبات - 'قائمة المستخدمين' (/admin/?page=user/list)
الاستغلال:
- قم بزيارة لوحة الإدارة http://localhost/vehicle_service/admin
- أنشئ حسابين للمسؤول.
- سجل الدخول بحساب المسؤول-1 في المتصفح أ (Chrome)
- سجل الدخول بحساب المسؤول-2 في المتصفح ب (Firefox)
- في حساب المسؤول-1 (Chrome) انتقل إلى قسم قائمة المستخدمين وانقر على زر إنشاء جديد.
- قم بحقن الحمولة التالية في حقل الإدخال "الاسم الأول".
الحمولة:
"><script>alert(document.cookie)</script>
- انقر على زر حفظ.
- التقط الطلب في burpsuite وأنشئ ملف HTML للـ CSRF.
- احفظ ملف HTML للـ CSRF مثال: CSRF.html
- في المتصفح ب (Firefox) تصفح ملف CSRF.html.
- انتقل إلى قسم قائمة المستخدمين في المتصفح ب (Firefox).
- تم تشغيل كود جافاسكريبت ضار.
6. نظام إدارة خدمة المركبات - 'الإعدادات' (/admin/?page=system_info)
الاستغلال:
- قم بزيارة لوحة الإدارة http://localhost/vehicle_service/admin
- أنشئ حسابين للمسؤول.
- سجل الدخول بحساب المسؤول-1 في المتصفح أ (Chrome)
- سجل الدخول بحساب المسؤول-2 في المتصفح ب (Firefox)
- في حساب المسؤول-1 (Chrome) انتقل إلى قسم الإعدادات.
- قم بحقن الحمولة التالية في حقل الإدخال "اسم النظام".
الحمولة:
"><script>alert(document.cookie)</script>
- انقر على زر تحديث.
- التقط الطلب في burpsuite وأنشئ ملف HTML للـ CSRF.
- احفظ ملف HTML للـ CSRF مثال: CSRF.html
- في المتصفح ب (Firefox) تصفح ملف CSRF.html.
- انتقل إلى قسم الإعدادات في المتصفح ب (Firefox).
- تم تشغيل كود جافاسكريبت ضار.
التأثير:
توجد ثغرة تزوير طلب عبر المواقع (CSRF) في نقاط نهاية متعددة تؤدي إلى ثغرة تخزين البرمجة النصية عبر المواقع (XSS).
التخفيف:
يوصى بتنفيذ ما يلي:
- غير قابل للتوقع بدرجة عالية من الإنتروبيا، كما هو الحال مع رموز الجلسة بشكل عام.
- مرتبط بجلسة المستخدم.
- يتم التحقق منه بدقة في كل حالة قبل تنفيذ الإجراء ذي الصلة.