المرحلة: Realistic::7 (What’s right for America)

الصعوبة: معتدلة

الرابط: https://www.hackthissite.org/playlevel/7/

المهمة: اختراق احد المواقع التي تدعوا إلى الكراهية

الرسالة: هناك موقع على الشبكة العنكبوتية يدعو إلى الكراهية والانتقام من الآخر، أرجو منك مساعدتي على إيقاف الموقع. ستجد صفحة للأدمن في مكان ما، ربما مخفية في الملفات الداخلية للموقع. ستجد الموقع هنا.

 

اذهب الآن وحاول أن تحل التحدي بنفسك، ويمكنك الإطلاع على التلميحات إن أردت.

 

التلميح الأول:
ما اسم المجلد الذي تُحفظ فيه الصور؟ هل حاولت الدخول إليه؟

 

التلميح الثاني:
فكر في الطريقة التي يعمل بها apache server لحماية ملف معين؟ أين يتم حفظ كلمة المرور؟

 

التلميح الثالث:
هل توجد صفحة تعرض لك أي ملف تريده؟ استخدمها لعرض الملف الذي يحتوي على كلمة المرور

 

الحل:

لنبدأ أولا بالبحث في الموقع وملاحظة إذا كان يحتوي على اسم مجلد يساعدنا في بحثنا. ستلاحظ أن الصورة التي في الصفحة الرئيسية توجد في مجلد يسمى “images”. رابط الصورة: https://www.hackthissite.org/missions/realistic/7/images/gay.jpg

لنحاول الدخول على هذا المجلد باستخدام الرابط: https://www.hackthissite.org/missions/realistic/7/images/

ستجد مجلد الأدمن هناك، ولكنه محمي بكلمة مرور. تستطيع تجربة الـ brute force attack ولكنه ممنوع في هذا التحدي لذا لن نقوم بتجربته. لنرجع إلى صفحة الموقع ونكمل البحث في الموقع على خيط آخر. تذكر أن apache يقوم بحفظ كلمة المرور في ملف بداخل المجلد admin باسم:

.htpasswd

بعد البحث ستلاحظ أن الصفحة showimages.php يقوم بعرض أي ملف تريد! لماذا لا نحاول عرض الملف .htpasswd

باستخدام الرابط: https://www.hackthissite.org/missions/realistic/7/showimages.php?file=images/admin/.htpasswd

ستجد أن الصور أصبحت معطوبة، وباستخدام Inspect element لأحد الصورتين ستجد أنها تحتوي على الآتي:

administrator:$1$AAODv…$gXPqGkIO3Cu6dnclE/sok1

أحفظ هذه المعلومة في ملف باسم “myfile” مثلا، ومن ثم باستعمال الأداة الشهيرة على لينيكس: john the ripper تستطيع فك تشفير الكلمة. وذلك باستعمال الأمر:

john myfile

الآن أذهب إلى صفحة الأدمن وقم بإدخال اسم المستخدم كـ: administrator وأدخل كلمة المرور بعد فكها.

 

ملحق:

لماذا قمنا بكتابة العنوان وكأن الملف الحالي هو root وليس images!؟

لا يهم هنا كثيرا أين موقع showimages.php الحالي، الأهم هو كيف يعرض الملفات. جرب أن تدخل على أحد تلك الملفات، كالموجودة في هذا الرابط مثلا:

https://www.hackthissite.org/missions/realistic/7/images/patriot.txt

ستجد أنه لا وجود للصفحة!

ولكن جرب:

https://www.hackthissite.org/missions/realistic/7/patriot.txt

ستجد الملف! إذن الصفحة تأخذ الملفات من الـ root وليس من المجلد images. كما وأنه عندما قمنا بعرض ما في مجلد images لم يكن يحتوي على أي من الملفات التي تقوم showpages.php بعرضها.