
إثبات مفهوم وظيفي (PoC) لـ CVE-2025-2304، وهو ثغرة تصعيد صلاحيات من نوع mass assignment في Camaleon CMS. يقوم بأتمتة مزامنة CSRF واكتشاف المعرفات الديناميكية وحمولة الحقن لتصعيد مستخدمين ذوي صلاحيات منخفضة إلى مشرف عبر نقطة النهاية updated_ajax.
يحتوي هذا المستودع على إثبات مفهوم وظيفي (PoC) لثغرة الإسناد الجماعي في Camaleon CMS (الإصدارات الأقدم من 2.8.1). توجد الثغرة في نقطة النهاية updated_ajax لوحدة إدارة المستخدمين، حيث يفشل التطبيق في تصفية الخصائص الحساسة بشكل صارم داخل تجزئة (hash) المعامل password.
من خلال حقن خاصية role في نطاق password أثناء تحديث الملف الشخصي، يمكن لمستخدم منخفض الصلاحيات تجاوز صلاحياته الخاصة للحصول على حالة admin.
تتجذر الثغرة في سوء تكوين المعلمات القوية (Strong Parameters) في وحدة التحكم Ruby on Rails. عندما يعالج التطبيق طلب التحديث AJAX، فإنه يسمح بشكل غير صحيح بدمج مفتاح role في خصائص كائن المستخدم:
/admin/users/:id/updated_ajaxpassword[...]password[role]=adminrequests.Session للحفاظ على الحالة عبر مراحل المصادقة والاستغلال.authenticity_token من DOM ويزامنه مع رأس X-CSRF-Token، مما يلبي متطلبات أمان AJAX الخاصة بـ Rails./admin/profile/edit لحل user[id] المطلوب لنقطة النهاية RESTful بشكل ديناميكي._method=patch لإرضاء متطلبات التوجيه للتطبيق لتحديثات الموارد عبر POST.requestsbeautifulsoup4قم بتثبيت التبعيات:
pip install -r requirements.txt
python3 main.py -u <target_url> --user <username> --password <password>
/admin/login): ينشئ جلسة مصادقة باستخدام user[username]./admin/profile/edit): يستخرج user[id] الفريد و authenticity_token جديد./admin/users/:id/updated_ajax): يرسل حمولة الحقن.يستخدم الاستغلال حمولة application/x-www-form-urlencoded منظمة على النحو التالي:
هذه الأداة مخصصة للأغراض التعليمية واختبار الاختراق المصرح به فقط. الوصول غير المصرح به إلى أنظمة الإنتاج غير قانوني.
| المعامل | القيمة | الوصف |
|---|
_method | patch | تجاوز طريقة REST لـ Rails |
authenticity_token | [Captured] | حماية CSRF المزامنة |
password[password] | [NewPassword] | مطلوب للتحقق من نطاق كلمة المرور |
password[role] | admin | الحقن الخبيث |