
استغلال إثبات المفهوم لثغرة CVE-2024-23724: تصعيد الامتيازات عبر تحميل صورة ملف شخصي ضارة بصيغة SVG في نظام إدارة المحتوى Ghost CMS. يتضمن إعدادًا آليًا ونص برمجي للهجوم.
لاختبار الثغرة، نحتاج إلى حسابين: حساب بدور المسؤول (المالك) وحساب بدور المساهم. في Ghost CMS، يجب أولاً الوصول إلى لوحة الإدارة لإنشاء حساب المالك، ثم من هذا الحساب، دعوة مساهم لإنشاء حسابه الخاص. ومع ذلك، في Ghost، الطريقة الوحيدة لدعوة مساهم هي إرسال رابط دعوة عبر البريد الإلكتروني، مما يتطلب خدمة توصيل البريد الإلكتروني لإرسال البريد إلى حساب المساهم. لتسهيل الأمور، أنشأنا حساب Mailgun، وأضفنا مساهمًا إلى Ghost، ثم أنشأنا ملف تفريغ لقاعدة البيانات في الحالة التي كانت عليها. في إعداد Docker Compose الخاص بنا، نضمن أولاً استعادة قاعدة البيانات من التفريغ قبل بدء تشغيل Ghost، بحيث لا تحتاج إلى خدمة توصيل البريد الإلكتروني لاختبار هذه الثغرة. ومع ذلك، إذا كنت ترغب في البدء بتثبيت نظيف وعدم استخدام ملف التفريغ المقدم، يمكنك استخدام Docker Compose في مجلد manual-setup لبدء تثبيت Ghost نظيف. أدناه، ستجد خطوات إعداد Mailgun (خدمة توصيل البريد الإلكتروني التي استخدمناها) وجعلها تعمل مع Ghost.
للتثبيت، إليك بيانات اعتماد المسؤول والمساهم لاستخدامها لتسجيل الدخول:
للبدء، يجب عليك إنشاء حساب Mailgun. بمجرد إنشاء حسابك، احصل على بيانات اعتماد SMTP الخاصة بك. بعد الحصول على بيانات الاعتماد، ضعها في ملف config.development.json باتباع نفس التنسيق الموضح في ملف config.example.json.
إليك دليل خطوة بخطوة:
config.example.json وأعد تسميته إلى config.development.json.config.development.json. سيضمن ذلك تكوين بيئة التطوير الخاصة بك بشكل صحيح لإرسال رسائل البريد الإلكتروني عبر Mailgun.يمكنك تشغيل التثبيت الذي اخترته باستخدام الأمر التالي:
docker-compose up
لاختبار الهجوم، اتبع الخطوات التالية:
python generate-malicious-svg.py -u [USERNAME] -p [PASSWORD] -t http://localhost
للتثبيت التلقائي، الأمر هو:
python generate-malicious-svg.py -u [email protected] -p ZtXfMq2FaRHGm@! -t http://localhost
يقوم هذا الأمر بإنشاء ملف SVG ضار باسم tenant-takeover.svg في الدليل الحالي.
قم بتسجيل الدخول إلى واجهة إدارة Ghost باستخدام بيانات اعتماد حساب المساهم الذي أنشأته. للقيام بذلك، زر http://localhost:3001/ghost وقم بتسجيل الدخول باستخدام بيانات اعتماد حساب المساهم.
انتقل إلى صفحة تعديل ملفك الشخصي عن طريق النقر على صورتك الشخصية في أسفل يسار الشاشة، ثم النقر على زر "Your profile".
انقر على أيقونة الملف الشخصي لتغيير صورتك الشخصية. حدد ملف SVG الضار الذي قمت بإنشائه في الخطوة 1.
احفظ التغييرات بالنقر على زر "Save & close". يمكنك تحديث الصفحة للتحقق من تغيير الصورة الشخصية.
يمكنك الآن تسجيل الخروج من حساب المساهم وتسجيل الدخول إلى حساب المسؤول. تحت http://localhost:3001/ghost/#/settings/staff?tab=contributors، يمكنك رؤية أن الصورة الشخصية للمساهم قد تغيرت. إذا نقرت بزر الماوس الأيمن على الصورة الشخصية، وفتحت الصورة في علامة تبويب جديدة، فسيؤدي ذلك إلى تشغيل الهجوم. يمكنك الآن العودة إلى http://localhost:3001/ghost/#/settings/staff وسترى أن المساهم أصبح الآن مالك المدونة وأنت أصبحت مسؤولاً.
لقد أعددنا فيديو يصف بالتفصيل العملية الكاملة والخطوات اللازمة لتنفيذ الثغرة CVE. هذا الفيديو بمثابة دليل بصري لفهم أفضل لمنهجنا والإجراءات المنفذة.
رابط الفيديو: انقر هنا لمشاهدة الفيديو
لا تتردد في مشاهدة هذا الفيديو للحصول على نظرة عامة كاملة على المشروع والخطوات التقنية المتبعة.