
Mongo Vulnub Lab...حاول اختراقه.....!
CTF Challenge - Mongoose RCE (CVE-2024-53900)
نظرة عامة على التحدي
تستند تحديات «Capture The Flag» (CTF) هذه إلى CVE-2024-53900، وهي ثغرة أمنية في Mongoose تسمح بتنفيذ الأوامر عن بُعد (RCE) بسبب الاستخدام غير السليم لمشغل $where في استعلامات MongoDB.
هدفك هو استغلال هذه الثغرة واسترجاع العلم المخفي داخل التطبيق!
تعليمات الإعداد
1 تثبيت التبعيات تأكد من تثبيت Node.js، ثم قم بتشغيل:
npm install
2 تكوين MongoDB
قم بتثبيت MongoDB وتأكد من تشغيله.
أنشئ ملف .env في الدليل الجذر بالمحتوى التالي:
MONGO_URI=mongodb://localhost:27017/ctf_db
3 تشغيل الخادم قم بتشغيل خادم Express الضعيف:
node server.js
سيبدأ الخادم على: http://localhost:3000
هدف التحدي
هدفك هو تجاوز المصادقة واستخراج العلم من النقطة الضعيفة.
النقطة الضعيفة:
POST /login
يستخدم التطبيق استعلام MongoDB غير آمن باستخدام $where، مما يجعله عرضة لحقن NoSQL وتنفيذ الأوامر عن بُعد (RCE).
تلميحات الاستغلال:
جرب حمولات حقن NoSQL للتلاعب بالاستعلام.
احقن كود JavaScript في شرط $where.
استرجع العلم المخفي داخل الرد.
هيكل الدليل
│── public/ أصول الواجهة الأمامية
│ ├── index.html واجهة تحديات CTF
│ ├── style.css تنسيق التحدي
│ └── script.js جافا سكريبت لطلب تسجيل الدخول
│── .env متغيرات البيئة (رابط MongoDB)
│── server.js خادم Express.js الضعيف
│── package.json التبعيات والنصوص البرمجية
│── package-lock.json ملف قفل التبعيات
└── README.md دليل التحدي (هذا الملف)
شرط الفوز
إذا نجحت في استغلال الثغرة، ستحصل على الرد:
Login Successful! Here is your flag: FLAG{**__****}