المرحلة: Realistic:8 (United Banks Of America)

الصعوبة: صعبة

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

المهمة: أحد الأغنياء قام بوضع 10,000,000$ في البنك للتبرع بها لحساب حملة تهدف إلى القضاء على المخترقين وملاحقتهم. يجب أن نمنع هذا.

الرسالة: أهلا. الرجل الذي يُدعى Gary Hunter أحد أغنى أغنياء أمريكا قام بوضع 10,000,000$ في حسابه في البنك ليقوم بتحويلها إلى منظمة تُعنى بملاحقة المخترقين (hackers) في كل العالم! حاولت أن أخترق موقعهم ولكن لم أستطع هذا. من فضلك قم بعمل الآتي:

1. ابحث عن حساب Gary Hunter . (أنا لا أعلم اسم حسابه في البنك)

2. حول من حسابه 10,000,000$ إلى حساب: dropCash

3. قم بتغطية آثارك من خلال مسح سجلات الموقع (the logs)، ستجدها في مجلد “logFiles”

 

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

 


 

التلميح الأول:
ابحث عن SQL Injection لتقوم بعرض كل أصحاب الحسابات في الموقع.

 

التلميح الثاني:
جرب إدخال ‘ في صفحة User Info، مالرسالة التي تظهر؟

 

التلميح الثالث:
ستجد أن وصف Gary Hunter المطلوب هو : — $$$$$ —

 

التلميح الرابع:
سجل في الموقع وبعد الدخول إلى حسابك جرب عملية الإيداع! ماذا تلاحظ؟

 

التلميح الخامس:
غير القيم التي تعلم في طلب التحويل واترك كلمة المرور كما هي. ماذا حدث؟

 

التلميح السادس:
لمحو سجلات الموقع، جرب التعديل على أيقونة “Clear Files In Personal Folder”.

 

الحل:

أول ما نريد فعله هو البحث عن اسم المستخدم، ومن الصعب تخمينه. أفضل الإحتمالات هو الحصول على SQL Injection. بقليل من البحث في مدخلات الموقع ستلاحظ أنك إذا قمت بإدخال ‘ في صفحة User Info ستظهر رسالة تقول إن السيرفر لم يجد ما تبحث عنه في الجدول “users”. عرفنا الآن اسم الجدول الذي نريد، ونتوقع أن هذه الصفحة تحتوي على SQL Injection Vulnerability. بقليل من البحث سنجد أننا إذا قمنا بإدخال ‘ OR 1=1/* سيظهر جميع مستخدمي الموقع، وبالإطلاع عليهم ستجد ان اسم المستخدم الذي نريد هو: GaryWilliamHunter

لمعرفة لماذا قمنا بهذا ولرؤية أمثلة أكثر عن SQL Injection راجع التحدي الثاني و الرابع.

 

قد تفكر الآن أن تذهب وتحاول طريقة الـ Brute Force Attack باستخدام اسم المستخدم الذي حصلت عليه، ولكن كما قلنا سابقا، فإن استخدام هذا النوع من الهجوم ممنوع في التحدي.

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

باستخدام Tamper Data في فايرفوكس، سنلاحظ أن الـ cookie تُرسل بدون تشفير! ويتم إرسال اسم المستخدم وكلمة المرور. وأيضا يتم إرسال المُحول إليه ومبلغ التحويل باستخدام POST.

hackthissite - realistec - 8 - 1

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

hackthissite - realistec - 8 - 2

نجحت المحاولة! انتهينا من أول مهمتين. بقيت المهمة الأخيرة، وهي محو آثار ما فعلناه. كما ذُكر في الرسالة، كل ما علينا فعله هو محو المجلد logFiles.

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

بالإطلاع على الأيقونة باستخدام Inspect Element ستجد أن هناك أيقونة مخفية تحوي القيمة qazwsx123SQLFiles. لنجرب تغييرها إلى القيمة التي نريد وهي: logFiles. ومن ثم نضغط على الأيقونة. وها قد انتهينا والحمد لله 🙂

ملحق:

رابط لـ Tamper Data:

https://addons.mozilla.org/en-US/firefox/addon/tamper-data/