معلومات عن التحدي:

اسم التحدي: 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}

الان خلونا نرجع لصفحه تسجيل الدخول ونجرب اليوزر والباسورد

http://192.168.100.17/login.php

تمام المعلومات المستخرجه صحيحه, مثل ما تلاحظون: هنا صفحه لرفع الملفات, خلونا نجرب نرفع 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}

 

وبكذا قدرنا ننهي التحدي بنجاح!