المرحلة: Realistic Level: 3 (Peace Poetry :HACKED)

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

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

المهمة: فتاة صغيرة قامت بعمل صفحة إلكترونية لمشاركة الشعر المتعلق بالسلام وتفهم الآخر. أحد الفاشيين قام بالإستيلاء على الموقع واستخدامه لنشر الفكر النازي. هل تستطيع إصلاح الموقع؟

 

الرسالة: مرحبا، لدي موقع يستطيع الناس فيه أن يقوموا بمشاركة شعرهم الذي يتحدث عن السلام. أفعل هذا بنية حسنة، ولا أفهم لماذا تم الإستيلاء على الموقع. هل تستطيع استعادة الموقع من فضلك. ستجد الرابط هنا.

 

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


 

 

التلميح الأول:

يجب عليك أولا الوصول إلى صفحة حيث تستطيع إدخال بعض المدخلات.

 

التلميح الثاني:

ألا تلاحظ شيئا غريبًا في آخر الكود الخاص بالصفحة الرئيسية؟ تعليق ربما..

 

التلميح الثالث:

عندما تشارك بشعر جديد، ما الاسم الذي يُخزن به في الموقع؟ هل تستطيع التلاعب بالإسم ليظهر الشعر في مكان آخر في الموقع؟

 

الحل:

كالعادة، دعنا أولا نفكر مالذي نحتاج إليه؟ ومن ثم ابدأ بعدها بالبحث في الموقع عن شئ يُوصلك إلى ما تريد. أنت تريد استعادة الصفحة الرئيسية. بقراءة الكود الخاص بالصفحة نجد أن المُخترق ترك تعليقا يقول فيه أنه لم يحذف الصفحة القديمة! هو فقط غير الاسم ليكون “oldindex.html” بدلا من index.html..

جيد، دعنا إذا نذهب إلى:

https://www.hackthissite.org/missions/realistic/3/oldindex.html

بالبحث في هذه الصفحة وقراءة ما كُتب في صفحة “submit the poetry”، فإن باستطاعتنا حفظ ما نريد في الصفحة وبالإسم الذي نريد. لماذا لا نجرب حفظ الصفحة بإسم index.html والمحتوى هو محتوى oldindex.html (الكود)!

إذا جربت هذا فلن يحدث شئ! لماذا؟ ماذا نسينا؟؟ قد تكون الصفحة تُحفظ في مجلد، وليس في الـ root. إذن لنجعل الإسم

../index.html

تم الحل..

 

ملحق:

كيف أجد كود الصفحة؟

أضغط في أي مكان فارغ في الصفحة على الزر اليمين للماوس، أختر: “View Page Source”، هذا هو كود الصفحة كاملا.

لماذا index.html لم يعمل، بينما index.html/.. عمل بشكل صحيح؟ ما الفرق بينهما؟

/.. تعني الرجوع إلى الخلف مجلد. لنفرض مثلا أنك تقوم بتطوير موقعك الخاص. لنفرض وجود صفحة بإسم mypage.html في المسار: www.yoursite.com/example/mypage.html. ولنفرض أيضا وجود صورة اسمها myphoto.jpg وموجودة في المسار: www.yoursite.com/myphoto.jpg

تستطيع الإشارة إلى الصورة من داخل mypage.html بطريقتين، إما عن طريق ذكر المسار كاملا: “www.yoursite.com/myphoto.jpg” وهذا يسمى absolute path. والطريقة الأخرى وهي أن تسميه: myphoto.jpg/.. لإنك لو لم تضع /.. لن يفهم السيرفر أنك تريد الرجوع إلى المجلد السابق لإيجاد الصورة وهذا يسمى relative path.

للإستزادة: http://www.coffeecup.com/help/articles/absolute-vs-relative-pathslinks/

 

تمرين:

ماذا لو كانت الصورة في المسار: www.yoursite.com/myphotos/myphoto.jpg ؟ ماذا سيكون الـ relative path في هذه الحالة؟ شارك الإجابة في التعليقات..