معلومات عن التحدي:
اسم التحدي: JIS-CTF: VulnUpload
اعداد: م.محمد خريشه
مستوى التحدي: سهل
لـ تحميل التحدي: هــنــا
في البدايه نقوم بـ استخدام Nmap لأستخراج الاجهزه المتصله بالشبكه:
nmap –open 192.168.100.1/24
ستقوم اداه nmap بالبحث داخل الشبكه عن الاجهزه وعمل فحص سريع لـ اول الف بورت مفتوح
ظهر لدينا جهاز متصل ولديه منفذين مفتوحه 80 و 22 ” HTTP & SSH ”
نجرب نفحص بورت 80 عبر فتحه من خلال المتصفح
يظهر لدينا صفحه تسجيل دخول
الان نقوم بفحص الموقع عبر اداه nikto :
nikto -h http://192.168.100.17
نتيجه الفحص تبين ان يوجد عده مسارات لمجلدات وايضا ملف robots.txt
نقوم بفتح ملف robots.txt
يبين لنا عده مسارات
نقوم بفحتها:
مسار مجلد backup غير موجود # تمويه
مسار مجلد admin غير موجود # تمويه
مسار مجلد admin_area موجود ولكن تظهر رساله “The admin area not work 🙂 ” # سنقوم بالتحقق منها لاحقا
مسار مجلد r00t غير موجود # تمويه
مسار مجلد uploads غير موجود # تمويه
مسار مجلد uploaded_files موجود ولكن صفحه فارغه
وهنا اول فلاق حصلنا عليه داخل مسار flag
The 1st flag is : {8734509128730458630012095}
الان خلونا نرجع لمجلد admin_area ونتحقق من السورس
واو =D
مثل ما تشوفون, هنا ظهر لنا اليوزر والباسورد, وايضا الفلاق رقم 2
username : admin
password : 3v1l_H@ck3r
والفلاق الثاني:
The 2nd flag is : {7412574125871236547895214}
الان خلونا نرجع لصفحه تسجيل الدخول ونجرب اليوزر والباسورد
تمام المعلومات المستخرجه صحيحه, مثل ما تلاحظون: هنا صفحه لرفع الملفات, خلونا نجرب نرفع Shell ونشوف يقبل او لا.
( بستخدم اداه weevely لصنع باك دور وارفعه على الموقع ):
weevely generate PASSword 0xA.php
شرح الامر: بالاول نقوم بكتابه اسم الاده ثم كتابه generate ثم يتليها الباسورد ثم اسم الملف
بعد رفع الشل على الموقع, نلاحظ ظهور كلمه Success , قبل معنا برفع الباك دور ولكن لم يظهر لنا مسار Shell
ولكن يوجد مسار uploaded_files فيه صفحه index.php ولكن فارغه لذلك خلونا نتصل بالشل من خلال هذا المسار, ونجرب هل راح يتصل معنا او لا, من خلال اداه weevely:
weevely http://192.168.100.17/uploaded_files/0xA.php PASSword
تم الاتصال بنجاح,
الان نبحث بالسيرفر, ونشوف وش نحصل =D
في مسار /var/www/html وجدنا ملف نصي بأسم flag, نجرب نقراه.
للاسف الصلاحيات لا تسمح
ولكن يوجد ملف hint.txt نجرب نقراه
واو, العلم الثالث ظهر لنا مع تلميحه اخرى ^_^
try to find user technawi password to read the flag.txt file, you can find it in a hidden file 😉
The 3rd flag is : {7645110034526579012345670}
هنا عطاك امرين مهمه وهي اخبرك بأسم اليوزر وايضا وين ممكن تحصل الباسورد ^_*
بصراحه هنا دخت وقضيت اكثر من ساعه ونص ابحث عن الملف ولا حصلته ابدا! كدت افقد الامل اني احصله واقفل المشين واروح اخذ لي قيم باتل فيلد =D
ولكن خطرت ببالي فكره وهي اقوم بعمل كود بايثون يقوم بالبحث بداخل النظام عن ملفات txt فقط, طبعا وجدت مثبت على السيرفر بايثون3
فلذلك قمت ببرمجه هذا السكربت ببساطه, الي يقوم ببحث عن الملفات التي تنتهي بأمتداد txt والي ممكن قراءتها فقط! لا اريد ملفات لا املك تصريح عليها
import os for root, dirs, files in os.walk("/"): for file in files: if file.endswith(".txt"): try: print(os.path.join(root, file)) check = open((root, file), 'r') except: pass
وظهر لي عدد كبير من الملفات
من الاسفل ظهرت لي ملفات سبق وان قمت بألاطلاع عليها, لذلك رحت مباشره على الملف الي بعدهم اجرب اقراه وتقريبا كنت فاقد الامل اني احصله ^_^
/etc/mysql/conf.d/credentials.txt
/var/www/html/flag.txt
/var/www/html/hint.txt
/var/www/html/robots.txt
قمت بقراءه ملف /etc/mysql/conf.d/credentials.txt والمفاجاه !
ظهر لي الفلاق الرابع وايضا اليوزر والباسورد =D
The 4th flag is : {7845658974123568974185412}
username : technawi
password : 3vilH@ksor
اردت التحويل لليوزر ولكن معروف الرد داما shell su: must be run from a terminal
ولكن ايضا بورت SSH مفتوح فلذلك خلونا نجرب نتصل عليه ونشيك.
ممتاز دخل معنا, هناك فلاق في مسار /var/www/html
واو الفلاق الخامس حصلنا عليه وانهينا التحدي وحصلنا ايضا على صلاحيه روت ^_^
The 5th flag is : {5473215946785213456975249}
وبكذا قدرنا ننهي التحدي بنجاح!