
كتابة حول غرفة THM لـ Vulnerability Capstone ونص استغلال لـ CVE-2018-16763.
شرح لغرفة Vulnerability Capstone من TryHackMe ونص استغلال لـ CVE-2018-16763.
لا أدّعي الفضل في اكتشاف هذه الثغرة. شكراً للأشخاص التاليين.
اكتشاف الثغرة:
0xd0ff9
غرفة TryHackMe والمؤلف:
https://tryhackme.com/room/vulnerabilitycapstone
https://tryhackme.com/p/cmnatic
المراجع:
https://github.com/noraj/fuelcms-rce/blob/master/exploit.rb
https://github.com/daylightstudio/FUEL-CMS/issues/478
https://packetstormsecurity.com/files/164756/Fuel-CMS-1.4.1-Remote-Code-Execution.html
1. تنفيذ الأوامر عن بُعد (Remote Code Execution)
Fuel CMS هو نظام إدارة محتوى لتطبيقات الويب. في الإصدار 1.4.1، توجد ثغرة RCE تسمح بتقييم/تنفيذ كود PHP تعسفي عبر مسارين مختلفين. المسار الأول لـ RCE هو طلب GET إلى /fuel/pages/select/ مع معامل filter data. المسار الثاني هو طلب POST إلى /fuel/preview مع معامل data. بحثت في الإنترنت لبعض الوقت، وللأسف لم أتمكن من العثور على كود المصدر الذي يظهر مكان الثغرة. أعلم أنني سيء... ههه. الآن سنواصل الشرح!
لنبدأ ببعض عمليات فحص المنافذ للحصول على فكرة عامة عن سطح الهجوم. أفضل استخدام rustscan للحصول على نظرة عامة شاملة على الهدف قبل إجراء فحص ضيق ومركّز باستخدام nmap.

يبدو الأمر قياسياً. أعتقد أنه سيكون SSH و HTTP على هذه المنافذ، ولكننا سنقوم بتشغيل بعض الفحوصات الإضافية باستخدام nmap للحصول على فكرة أكثر تحديداً.

إذن لدينا SSH و HTTP يعملان على منافذهما القياسية. دعنا نلقي نظرة على صفحة الويب ونرى ما لدينا!

خادم الويب يستضيف Fuel CMS الإصدار 1.4. هذا الإصدار معرّض لحقن الأوامر عبر تقييم كود PHP. دعنا نلقي نظرة على CVE من NVD أدناه.

تتوفر عدة استغلالات لهذا البرنامج. لقد وفّرت استغلالاً بلغة Python لكنه سيء. أسميه سيئاً لأننا سنضطر إلى تحليل الاستجابة يدوياً من طلب الويب لرؤية مخرجات أوامرنا. لم أنجح في محاولاتي لقص الدهون. دعنا نلقي نظرة!

نفّذت الأمر ls -al. كما نرى، مخرجات الأمر موجودة بين عناصر HTML div.

لن أكشف عن العلم (flag)، لكن سأعطيك تلميحاً! يمكنك البدء بالنظر إلى الدليل الرئيسي (home directory). شكراً لقراءة هذا الشرح. استمتع!