Nebula 02 - Walkthrogh
بسم الله الرحمن الرحيم
اللهم صل وسلم على سيدنا محمد وعلى آله وصحبه اجمعين
اللهم علمنا ماينفعنا وانفعنا بما علمتنا انك انت العليم الحكيم
نبدا في التحدي الثالث من تحديات Nebula لأخذ العلم
اول مانبدا نقرا النبذة عن التحدي وبعدها نبدا باذن الله حلّه
والخطا في الكود بان الدالة system تمرر قيمة USER من غير فلترة
وبالامكان استغلالها بالشكل التالي
ماتم عمله هو تصدير قيمة جديدة للمتغير USER تمكننا من الحصول على شل بصلاحيات flag02 وبعدها تنفيذ البرنامج getflag للحصول على العلم
الى هنا ينتهي الدرس القاكم في التحدي القادم باذن الله
اللهم صل وسلم على سيدنا محمد وعلى آله وصحبه اجمعين
اللهم علمنا ماينفعنا وانفعنا بما علمتنا انك انت العليم الحكيم
نبدا في التحدي الثالث من تحديات Nebula لأخذ العلم
اول مانبدا نقرا النبذة عن التحدي وبعدها نبدا باذن الله حلّه
There is a vulnerability in the below program that allows arbitrary programs to be executed, can you find it?To do this level, log in as the level02 account with the password level02. Files for this level can be found in /home/flag02.
وبعدها يستعرض الكود التالي
الكود ياخذ المدخل من المتغير USER في env اللي تم شرحها في الدرس السابق#include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> #include <stdio.h> int main(int argc, char **argv, char **envp) { char *buffer; gid_t gid; uid_t uid; gid = getegid(); uid = geteuid(); setresgid(gid, gid, gid); setresuid(uid, uid, uid); buffer = NULL; asprintf(&buffer, "/bin/echo %s is cool", getenv("USER")); printf("about to call system(\"%s\")\n", buffer); system(buffer); }
والخطا في الكود بان الدالة system تمرر قيمة USER من غير فلترة
وبالامكان استغلالها بالشكل التالي
ماتم عمله هو تصدير قيمة جديدة للمتغير USER تمكننا من الحصول على شل بصلاحيات flag02 وبعدها تنفيذ البرنامج getflag للحصول على العلم
الى هنا ينتهي الدرس القاكم في التحدي القادم باذن الله
تعليقات
إرسال تعليق