
مختبر الثغرات: MainWP Dashboard <= 3.1.2 ثغرة XSS مخزّنة بدون مصادقة
مختبر معرّض لثغرة CVE-2016-15041: XSS مخزّن بدون مصادقة في إضافة MainWP Dashboard الخاصة بـ WordPress <= 3.1.2.
docker compose up -d --build
انتظر حوالي 30 ثانية حتى يكتمل الإعداد التلقائي. يعرض المختبر لافتة عندما يكون جاهزًا:
docker compose logs -f wordpress
| المورد | الرابط / بيانات الاعتماد |
|---|---|
| WordPress | http://localhost:8088 |
| بيانات دخول المشرف | admin / admin123 |
| الرابط المعرّض للثغرة | http://localhost:8088/wp-admin/admin-post.php?page=mainwp-setup&step=purchase_extension |
Nuclei:
nuclei -t https://raw.githubusercontent.com/projectdiscovery/nuclei-templates/main/http/cves/2016/CVE-2016-15041.yaml -u http://localhost:8088
إثبات المفهوم اليدوي:
./scripts/poc.sh http://localhost:8088
docker compose down -v
| الحقل | القيمة |
|---|---|
| CVE | CVE-2016-15041 |
| الخطورة | عالية |
| النوع | XSS مخزّن (بدون مصادقة) |
| الإصدارات المتأثرة | MainWP Dashboard <= 3.1.2 |
| تم الإصلاح في | 3.1.3 |
يمكن الوصول إلى معالج الإعداد السريع في MainWP Dashboard بدون مصادقة. يمكن للمهاجم حقن JavaScript عبر المعامل mwp_setup_purchase_username. تُخزَّن الحمولة في خيارات WordPress وتُعرَض دون تهريب عندما يطّلع المشرف على صفحة الإضافات.
GET /wp-admin/admin-post.php?page=mainwp-setup&step=purchase_extension → الحصول على CSRF nonce (بدون الحاجة إلى مصادقة)POST يحمل حمولة XSS مع nonce (بدون الحاجة إلى مصادقة)تم الحصول على الإضافة المعرّضة للثغرة (الإصدار 3.1.2) من مراجعة WordPress SVN r1394563 (14 أبريل 2016). تم تطبيق تصحيحات توافق بسيطة مع PHP 8 لا تؤثر على الثغرة:
__autoload() بالدالة spl_autoload_register()توجد ثغرة XSS في view/view-mainwp-extensions-view.php في السطر 74 حيث تتم طباعة $username دون استخدام esc_attr().