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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
POC-WP-XSS2Shell-CVE-2026-64638 — PoC وظيفي لثغرة CVE-2026-64638 (XSS2Shell): سلسلة XSS قبل المصادقة تصل إلى تنفيذ أوامر عن بُعد (RCE) في نواة ووردبريس (WordPress Core). مختبر Docker + خادم مهاجم Python + تحليل تقني ووسائل تخفيف. | Kitploit
أدوات/GitHubGitHub/686f6c61/poc-wp-xss2shell-cve-2026-64638
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبالتعلم والتعليمتطوير الحمولاتمختبرات وتدريب عملي
GitHub686f6c61/poc-wp-xss2shell-cve-2026-64638

POC-WP-XSS2Shell-CVE-2026-64638

PoC وظيفي لثغرة CVE-2026-64638 (XSS2Shell): سلسلة XSS قبل المصادقة تصل إلى تنفيذ أوامر عن بُعد (RCE) في نواة ووردبريس (WordPress Core). مختبر Docker + خادم مهاجم Python + تحليل تقني ووسائل تخفيف.

الأكثر شعبية

عرض الكل →

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

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

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

عرض جميع الأدوات →
مشاركة
عرض المستودع
1منذ 13 أياملم تتم المراجعة بعد

XSS2Shell — إثبات المفهوم لـ CVE-2026-64638

إثبات مفهوم تعليمي لسلسلة XSS2Shell (CVE-2026-64638)، ثغرة من نوع XSS → RCE قبل المصادقة في نواة WordPress، اكتُشفت بشكل مستقل بواسطة pwn.ai ونُشرت في 7 أغسطس 2026.


جدول المحتويات

  1. الملخص التنفيذي
  2. إخلاء المسؤولية القانوني
  3. بنية السلسلة
  4. المتطلبات
  5. هيكل المستودع
  6. دليل الاستخدام السريع
  7. التحقق من الاستغلال
  8. وثائق إضافية

الملخص التنفيذي

CVE-2026-64638 هي ثغرة من نوع cross-site scripting (XSS) منعكسة، قبل المصادقة، في شاشة تسجيل الدخول في WordPress (wp-login.php). تؤثر على جميع الإصدارات المدعومة من WordPress التي تسبق الإصدار 7.0.3، الذي صدر في 6 أغسطس 2026 كـإصدار أمني طارئ. وقد حُددت لها درجة CVSS v4.0 تبلغ 8.9.

تُظهر السلسلة المسماة XSS2Shell كيف يمكن للمهاجم، انطلاقًا فقط من محاولة تسجيل دخول فاشلة باسم مستخدم مُعدَّل، أن:

  1. يحقن عناصر DOM نشطة في صفحة تسجيل الدخول مستغلًا تباينًا بين محللَي PHP (strip_tags) وWordPress (wp_kses_post).
  2. يختطف تدفق تنفيذ JavaScript الخاص بـ WordPress (user-profile.js) لإجراء طلب REST JSONP إلى نفس الأصل.
  3. يحوّل استجابة JSONP إلى تنفيذ JavaScript في أصل WordPress عبر jQuery.globalEval().
  4. يربط كل ذلك بتقنية Same Origin Method Execution (SOME) التي قدّمها Paulos Yibelo (2022) للقيام بنقرة تلقائية على زر الموافقة على كلمات مرور التطبيقات داخل جلسة مسؤول مُصادَق عليها.
  5. يلتقط بيانات اعتماد كلمة مرور التطبيق الناتجة، وينشر صفحة تحتوي JavaScript خبيثًا، وأخيرًا يرفع إضافة (plugin) بصيغة ZIP تنفذ PHP على الخادم.

النتيجة هي تنفيذ عن بُعد للكود (RCE) على خادم WordPress، بصلاحية مستخدم عملية الويب (عادةً www-data)، انطلاقًا من نقرة واحدة من المسؤول على رابط يتحكم به المهاجم.


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

يحتوي هذا المستودع على مواد تعليمية ودفاعية بحتة.

  • الغرض: إظهار سلسلة الاستغلال لأغراض التدريب والتدقيق الذاتي والتحقق من التصحيحات.
  • الاستخدام المصرح به: شغّله فقط ضد تثبيتات WordPress التي تملكها أو التي لديك تفويض كتابي صريح بشأنها.
  • محظور: أي استخدام ضد أنظمة أطراف ثالثة دون موافقة. مؤلف المستودع غير مسؤول عن إساءة استخدام المواد الواردة هنا.
  • المسؤولية: المشغّل هو المسؤول الوحيد عن الامتثال للتشريعات المعمول بها (LOPD/RGPD في إسبانيا، CFAA في الولايات المتحدة، إلخ).

يُقدَّم إثبات المفهوم مع بيئة Docker مكتفية ذاتيًا غايتها الوحيدة أن تكون هدفًا محليًا وقابلًا لإعادة الإنتاج.


بنية السلسلة

root@kitploit:~
┌─────────────────────────────────────────────────────────────────────┐
│  1. XSS pre-auth en wp-login.php                                    │
│     log=< area id=ajaxurl href=/?rest_route=/&_jsonp=...>           │
│     (discrepancia strip_tags ↔ wp_kses_post)                        │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  2. user-profile.js dispara .trigger('click')                       │
│     DOM clobbering de ajaxurl → petición POST al origen             │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  3. REST JSONP responde application/javascript                      │
│     jQuery.globalEval() ejecuta el callback en el origen WP         │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │  callback = window.opener
                                           │            .approve.click
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  4. SOME: click() cruza la frontera opener→admin                    │
│     authorize-application.php#approve se pulsa en sesión admin      │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  5. WP crea Application Password → redirige a success_url           │
│     El atacante captura user_login + password en callback.php       │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │  HTTP Basic REST
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  6. POST /wp-json/wp/v2/pages  → publica página con <script>        │
│     El admin visita la página → JS en origen WP con sesión admin    │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  7. fetch update.php?action=upload-plugin  → sube payload.zip       │
│     PHP del plugin es accesible directamente sin activarlo          │
└──────────────────────────────────────────┬──────────────────────────┘
                                           │
                                           ▼
┌─────────────────────────────────────────────────────────────────────┐
│  8. RCE confirmada: GET /wp-content/plugins/payload/shell.php       │
└─────────────────────────────────────────────────────────────────────┘

المتطلبات

بُني إثبات المفهوم ليعمل على macOS أو Linux مع:

  • Docker 24+ وDocker Compose v2 (للهدف المحلي).
  • Python 3.9+ (للمنسّق الاختياري).
  • PHP 8.1+ مع امتداد zip (لبناء payload يدويًا، اختياري؛ يتضمن المجلد payload/ ملف ZIP مبنيًا مسبقًا).
  • متصفح حديث مبني على Chromium أو Firefox.

ليس من الضروري تثبيت WordPress يدويًا: يرفع ملف docker-compose.yml نسخة WordPress 7.0.2 ضعيفة (آخر إصدار قبل التصحيح) جنبًا إلى جنب مع MariaDB.


هيكل المستودع

root@kitploit:~
POC XSS2Shell (CVE-2026-64638)/
├── README.md                       ← Este archivo
├── docker-compose.yml              ← Blanco: WordPress 7.0.2 + MariaDB
├── .env.example                    ← Variables de configuración
├── exploit.py                      ← Orquestador en Python (opcional)
├── attacker/                       ← Infraestructura del atacante
│   ├── index.html                  ← Página cebo con la cadena SOME
│   ├── callback.php                ← Receptor de la Application Password
│   └── server.py                   ← Servidor estático + PHP embebido
├── payload/                        ← Plugin ZIP malicioso
│   ├── build_payload.py            ← Generador del ZIP
│   ├── shell.php                   ← Webshell mínimo
│   └── payload.zip                 ← ZIP preconstruido (listo para usar)
└── docs/
    ├── ANALISIS.md                 ← Análisis técnico detallado
    └── MITIGACION.md               ← Guía de mitigación y hardening

دليل الاستخدام السريع

1. تشغيل الهدف (إصدار WordPress 7.0.2 الضعيف)

root@kitploit:~
cp .env.example .env
docker compose up -d

سيصبح WordPress متاحًا على http://localhost:8080. اتبع معالج التثبيت وأنشئ مستخدمًا مسؤولًا (على سبيل المثال admin / admin-password).

يثبّت ملف Dockerfile الصورة على wordpress:7.0.2-php8.2-apache، وهي آخر نسخة تسبق التصحيح 7.0.3.

2. تشغيل البنية التحتية للمهاجم

root@kitploit:~
# En otro terminal, dentro de attacker/
python3 server.py

يستمع خادم المهاجم على http://localhost:9000 ويعرض:

  • / → index.html (الصفحة الطُعمية).
  • /callback.php → مستقبل كلمة مرور التطبيق.

3. محاكاة نقرة المسؤول

  1. سجّل الدخول كمسؤول على http://localhost:8080/wp-admin.
  2. في نفس جلسة المتصفح، افتح تبويبًا جديدًا وزُر http://localhost:9000/.
  3. سترى زرًا واحدًا «Approve Application». عند الضغط عليه تُنفَّذ السلسلة بأكملها تلقائيًا.

4. ملاحظة التقاط بيانات الاعتماد

في الطرفية التي يعمل بها server.py سيظهر سطر من النوع:

root@kitploit:~
[+] Application Password recibida para el usuario 'admin':
    XXXX XXXX XXXX XXXX XXXX XXXX

تُحفظ بيانات الاعتماد أيضًا في attacker/captured_credentials.txt.

5. رؤية RCE

بعد بضع ثوانٍ، سيكون منسّق index.html قد:

  • نشر صفحة تنفذ JavaScript في أصل WordPress.
  • رفع الإضافة payload.zip إلى wp-content/plugins/payload/.

تحقق من تنفيذ الكود باستخدام:

root@kitploit:~
curl -sI http://localhost:8080/wp-content/plugins/payload/shell.php

ترويسة Hacked: true وجسم JSON يؤكدان حدوث RCE.


التحقق من الاستغلال

بمجرد اكتمال السلسلة، تخدم نقاط النهاية التالية كدليل:

الموردالدليل المتوقع
GET /wp-content/plugins/payload/shell.phpترويسة Hacked: true + JSON {"rce":true,"user":"www-data"}
attacker/captured_credentials.txt

وثائق إضافية

  • docs/ANALISIS.md — تحليل تقني مفصل لكل مرحلة من مراحل السلسلة، مع مراجع إلى الكود المصدري لـ WordPress.
  • docs/MITIGACION.md — تخفيفات موصى بها، تحصين، والتحقق من التصحيح 7.0.3.

الاعتمادات

  • البحث الأصلي والإفصاح: pwn.ai — https://pwn.ai/blog/xss2shell
  • تقنية SOME الأساسية: Paulos Yibelo (2022)، نُشرت في مدونة pwn.ai ورُشحت ضمن أفضل تقنيات اختراق الويب لعام 2022.
  • إثبات المفهوم وتغليف هذا المستودع: عمل خاص لأغراض تعليمية.

الترخيص

موزَّع بموجب ترخيص MIT. راجع ملف LICENSE لمزيد من التفاصيل.

تنزيل الأداة
كلمة مرور تطبيق ملتقطة
wp-admin → التطبيقات → كلمات مرور التطبيقاتإدخال جديد باسم «SomeApp»