
ماسح كشف غير تطفلي لسلسلة ثغرات RCE قبل المصادقة (pre-auth) في WordPress wp2shell (CVE-2026-63030 + CVE-2026-60137). للكشف فقط، دون استغلال.
ماسح كشف غير تدخّلي لثغرات النواة الحديثة في WordPress — بما في ذلك سلسلة تنفيذ الأكواد عن بُعد (RCE) قبل المصادقة المعروفة باسم wp2shell.
يستخرج wp2shell_scanner.py بصمة إصدار نواة WordPress ويقرأ سطح واجهة REST API المُعلنة علنًا، ثم يصنّف كل ثغرة CVE في النواة مُتتبَّعة بشكل مستقل مقابل الإصدار المكتشَف. النتائج مراعية لفرع الإصدار (branch-aware) — على سبيل المثال، يُبلَّغ عن موقع يعمل بـ 6.8.x بشكل صحيح على أنه مكشوف لثغرة حقن SQL لكنه ليس مكشوفًا لسلسلة RCE الكاملة. يكتشف فقط: لا يُرسل أي حمولة استغلال إطلاقًا. ملف واحد، واعتماد واحد (requests)، ورموز خروج مناسبة لبيئات التكامل المستمر (CI)، وتقارير HTML / JSON / بريد إلكتروني جاهزة للعملاء.
⚠️ للاستخدام المصرَّح به فقط. امسح الأنظمة التي تملكها أو التي صرّح لك صراحةً (كتابيًا) باختبارها. يرسل الماسح وسم
User-Agentتعريفية حتى تتمكن فرق الدفاع (blue teams) من نسب الحركة إليه — فهو لا يخفي نفسه.
سلسلة إصابات wp2shell (RCE) = CVE-2026-63030 + CVE-2026-60137 معًا → تنفيذ برمجي عن بُعد قبل المصادقة على تثبيت افتراضي. يبلّغ الماسح عن السلسلة بأنها مكشوفة فقط عندما تُصنَّف كلتا الثغرتين على أنهما قابلتان للاستغلال مقابل الإصدار المكتشَف.
الفروق بين الفروع التي يرصدها الماسح بدقة:
6.8.x تحمل ثغرة حقن SQL (CVE-2026-60137) فقط — وليس سلسلة RCE.6.9، تُصلَح ثغرة CVE-2026-3906 (الملاحظات) في 6.9.2، لكن سلسلة wp2shell لا تُغلق قبل 6.9.5. لذلك يقرأ 6.9.2/6.9.4 على أنه مُصلَح من ثغرة الملاحظات ويظل مع ذلك عُرضة لسلسلة RCE — لذلك يوصي الماسح على ذلك الفرع بـ 6.9.5 أو أحدث فقط، ولا يوصي أبدًا بـ 6.9.4.مهم من الناحية التشغيلية: التوثيقات الفنية وإثبات المفهوم (PoC) العملي لـ wp2shell منشورة علنًا بالفعل. كشف الإصدار هو الآن الحد الأدنى المطلق — الأولوية هي التحديث (patching). التحديث يُغلق المسار القابل للاستغلال لكنه لا يزيل بابًا خلفيًا زُرع قبل التحديث — ومن هنا خطوة تقييم الاختراق في التقرير.
هذا ماسح لإصدار النواة فقط. ثغرات الإضافات (plugins) والقوالب (themes) — الغالبية العظمى من كتالوج WPScan / Patchstack — تتطلب موجزًا حيًا ومنسّقًا وتعدادًا لإصدار كل إضافة على حدة، وهي خارج النطاق عمدًا هنا. في إطار مساره (ثغرات نواة WordPress الحديثة)، يهدف إلى الدقة والمواءمة الدقيقة مع الفروع بدلًا من تكرار قاعدة بيانات ثغرات تجارية.
<meta name="generator"> في الصفحة الرئيسية/readme.html<generator> في موجز RSS / Atom/wp-links-opml.php (OPML)/wp-json/ ليرى ما إذا كان WordPress يعلن عن فضاء الأسماء batch/v1 في فهرس REST الخاص به. هذا يؤكد أن فضاء الأسماء مسجَّل، وليس أن نقطة النهاية قابلة للوصول عبر جدار حماية تطبيقات الويب (WAF). لا يتم إرسال أي طلب دُفعات ولا أي حمولة.لا يستغل أي شيء. لا حمولة حقن SQL، ولا طلب التباس توجيه الدُفعات، ولا أي محاولة لتنفيذ برمجيات أو قراءة بيانات. الكشف قائم على الإصدار بالإضافة إلى قراءة سلبية لسطح واجهة API المُعلن عنها علنًا.
pip install requests
# single target
python3 wp2shell_scanner.py -t https://site.example --authorized
# list of targets (one per line, # comments allowed)
python3 wp2shell_scanner.py -T scope.txt --authorized -o ./reports
# preview the output formats with synthetic data — no network, no auth needed
python3 wp2shell_scanner.py --demo -o ./reports
علامة --authorized هي بوابة تفويض صريحة — يرفض الفحص المباشر العمل بدونها.
| الرمز | المعنى |
|---|---|
2 | هدف واحد على الأقل عُرضة (vulnerable) |
1 | هدف واحد على الأقل غير حاسم / خطأ |
0 | سليم (مُصلَح / غير متأثر / ليس WordPress) |
مستلم البريد الإلكتروني التنبيهي هو الثابت CSSLTD_CONTACT بالقرب من أعلى السكربت (الافتراضي [email protected]). عدّله إلى عنوان الاستقبال الخاص بك.
يحتوي دليل examples/ على مخرجات اصطناعية (--demo) لمضيف عُرضة خيالي (example.com، WordPress 6.9.1 — مكشوف لجميع الثغرات الثلاث المُتتبَّعة):
wp2shell_report_example.com.html — تقرير HTML الجاهز للعملاءwp2shell_example.com.json — سجل JSONwp2shell_email_example.com.txt — البريد الإلكتروني التنبيهي المسودةتم توليد هذه من بيانات مفتعلة لتوضيح صيغة التقرير. وهي ليست نتيجة فحص أي موقع حقيقي.
6.9.5+ يعتبر نظيفًا — لا يزال 6.9.4 يحمل سلسلة wp2shell.)uploads/ وwp-config.php وwp-cron وحسابات الإدارة؛ ونفّذ فحوصات سلامة الملفات مقابل نواة معروفة بأنها سليمة./wp-json/batch/v1).هذه الأداة مخصصة لاختبارات الأمان المصرَّح بها فقط. أنت مسؤول عن ضمان حصولك على إذن لفحص أي هدف. قد يكون الفحص غير المصرَّح به غير قانوني. لا يتحمل المؤلفون أي مسؤولية عن إساءة الاستخدام.
| CVE | موطن الضعف | الوصول | الإصدارات المتأثرة من النواة | أُصلحت في |
|---|
| CVE-2026-63030 — wp2shell | CWE-436 — التباس توجيه الدُفعات في REST → RCE (حرجة؛ CVSS 9.8 وفق WPScan CNA / 7.5 وفق CISA-ADP؛ GHSA-ff9f-jf42-662q) | بدون مصادقة | 6.9.0–6.9.4، 7.0.0–7.0.1 | 6.9.5، 7.0.2 |
| CVE-2026-60137 | CWE-89 — حقن SQL في WP_Query عبر author__not_in (متوسطة منفردة، CVSS 5.9؛ حرجة ضمن السلسلة؛ GHSA-fpp7-x2x2-2mjf) | بدون مصادقة | 6.8.0–6.8.5، 6.9.0–6.9.4، 7.0.0–7.0.1 | 6.8.6، 6.9.5، 7.0.2 |
| CVE-2026-3906 | CWE-862 — عدم توفر تفويض في REST API الخاص بالملاحظات (Notes) (متوسطة، CVSS 4.3، GHSA-6x83-fcf5-r65g) | مشترك+ (Subscriber+) | 6.9.0–6.9.1 | 6.9.2 |
| العلامة | المعنى |
|---|
-t, --target | عنوان URL أو مضيف واحد مستهدف |
-T, --targets-file | ملف يحتوي على هدف واحد في كل سطر |
--demo | توليد تقرير/بريد إلكتروني عيّنة (SAMPLE) من بيانات اصطناعية (بدون شبكة) |
-o, --output-dir | دليل الإخراج (الافتراضي ./wp2shell_reports) |
--formats | قائمة مفصولة بفواصل: json,html,email (الافتراضي: الكل) |
--authorized | بوابة التفويض — مطلوب للفحوصات المباشرة |
--timeout | مهلة HTTP بالثواني (الافتراضي 12) |
--delay | الثواني بين الأهداف (تحلَّ باللباقة؛ الافتراضي 1.0) |
--insecure | لا تتحقق من شهادات TLS |
--quiet | كتم ملخص وحدة التحكم |
| النتيجة | المعنى |
|---|
VULNERABLE | الإصدار المكتشَف يقع ضمن نطاق متأثر — حدّث فورًا |
PATCHED | على إصدار مُصلَح؛ غير مكشوف للثغرات المُتتبَّعة |
NOT_AFFECTED | الإصدار يسبق أقدم عيب مُتتبَّع (< 6.8.0 — CVE-2026-60137) |
UNKNOWN | تعذّر تأكيد الإصدار، أو تعارضت النواقل، أو شوهد بناء قبل الإصدار النهائي — تحقق يدويًا |
NOT_WORDPRESS | لم يُعثر على أي بصمة WordPress |