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