Bandit Level 26 to 33 -End- (Arabic)
بسم الله
-------------------------------------------------------------
في المرحلة 26←27 مشكلتنا إننا كل
ما حاولنا نتصل بالمرحلة، قَبَل الاتصال ثم يخرجنا مباشرة بعد ما يطبع الـmessage اللي تطلع لما ندخل على أي مرحلة. في
الاقتراحات للحل بالموقع حاط لنا more وهي اللي بنستخدمها للحل.
عشان نحل هذه المرحلة نبغى الـbuffer لـmore يطلع لنا، كيف نسوي كذا؟ نصغر نافذة التيرمينال جدا جدا، ونكبر الخط جدا جدا، مثل كذا:
وليه نسوي كذا؟ عشان نبغى تطلع لنا more، الحين نضغط enter ونتصل بالمرحلة 26، وبتطلع more وهذا اللي نبي
الحين من لوحة المفاتيح نضغط على v وبكذا بنصير داخل Text Editor والحين نقدر نكبر الشاشة عادي، ثم نكتب كذا على الشاشة
:set shell=/bin/bash
اكتبو نفس الشيء بالضبط بداية من : ، ثم
اضغطوا Enter
بعدين نرجع نكتب على الشاشة
:shell
ونضغط Enter
وبكذا بنحصل على bash shell، نستعرض الملفات وبنلاقي setuid اسمه bandit27-do، وهو يسوي أي كوماند نرسلها معاه كـargument بصلاحيات bandit27، إذن بكل سهولة نعرض الملف اللي يحتوي على
كلمة السر لـ27
ناخذ كلمة السر وننتقل للمرحلة اللي بعدها
ssh bandit27@bandit.labs.overthewire.org -p 2220
------------------------------------------------------------------------------
في المرحلة 27←28 يبيني أسوي clone لـrepository وأبحث عن كلمة السر داخله. وقالي إن كلمة السر
لهذا الريبوزيتوري هي نفسها لهذه المرحلة.
بالبداية نروح لـ/tmp نسوي مجلد جديد، وبداخل هذا المجلد نسوي
كلون للريبوزيتوري، وإذا طلب كلمة السر أعطيه كلمة السر نفسها اللي دخلت بها لهذه
المرحلة.
تحمل عندنا مجلد اسمه repo نروح عليه ونعرض الملفات اللي فيه، بنلقى ملف README نقرأه وبنلقى كلمة السر للمرحلة الجاية.
ناخذ كلمة السر وننتقل للمرحلة اللي بعدها
ssh bandit28@bandit.labs.overthewire.org -p 2220
------------------------------------------------------------------------------
في المرحلة 28←29 نفس المطلوب بالمرحلة
السابقة
تحمل عندنا مجلد اسمه repo نروح عليه ونعرض الملفات اللي فيه، بنلقى ملف README، وبنلاحظ إن في اسم مستخدم وكلمة سر، لكن الفرق إن كلمة السر حاطين مكانها xxxx هذا يعطي دلالة كأن فيه قيمة ومخفينها، فبنجرب نشوف النسخ السابقة لهذا الملف، ممكن نلاقي أحدها محتوي على كلمة السر.
عشان نعرض السجل لهذه التعديلات نستخدم git
log
هنا طلع لي 3، إذا نبي نعرض أحدها نقول git show وبعد كذا نضع قيمة SHA1 اللي تكون بجانب كلمة “commit”، بالبداية بنعرض أول واحد اللي التعليق عليه
“Initial commit of README.md”
هنا نلاحظ إنه أضاف كل المعلومات ما عدا كلمة السر. لو نرجع للـlog بنلاحظ إن ثاني تعديل كان التعليق عليه “add missing data” واحنا أول مره ما كان مفقود عندنا إلا كلمة السر، إذن كلمة السر بتكون هنا، نعرض التعديل وناخذ كلمة السر وننتقل للمرحلة اللي بعدها.
*ملاحظة: اللون الأخضر هنا يدل على ما تم إضافته، والأحمر على ما تم حذفه.
ssh bandit29@bandit.labs.overthewire.org -p 2220
------------------------------------------------------------------------------
في المرحلة 29←30 نفس المرحلة السابقة
تحمل عندنا مجلد اسمه repo نروح عليه ونعرض الملفات اللي فيه، بنلقى ملف README يقول إن كلمة السر ما زالت قيد الإنتاج.
كلمة production هذي لها دلالة. الحين لما نشتغل مع git يكون عندنا أكثر من branch، يعني أكثر من فرع يكون عليه الشغل، وبما إنه هنا قال إنها لا زالت في الـproduction فبنروح ونشيك على الـbranches الأخرى ونشوف. عشان نعرف احنا بأي branch نستخدم git branch، وعشان نعرف وش الـbranches اللي عندي استخدم
git branch -a
طيب، أحد البرانشيز واحد اسمه dev يعني development يعني production يعني احتمال 99% كلمة السر هنا، نروح على هذا البرانش باستخدام git checkout remotes/origin/dev
وعشان نتأكد إننا انتقلنا بشكل صحيح نستخدم git branch
تمام، كذا احنا بالـdev، نعرض السجل ونشوف لو فيcommit مثير للاهتمام
أول واحد فوق يقول إنه أضاف بيانات نحتاجها للتطوير، لو نستعرض هذا الـcommit بنلاقي كلمة السر للمرحلة اللي بعدها فيه، ناخذها وننتقل للمرحلة 30.
ssh bandit30@bandit.labs.overthewire.org -p 2220
--------------------------------------------------------------
في المرحلة 30←31 نفس المرحلة السابقة، نسوي clone في /tmp على مجلد جديد، ثم بعدين نروح على repo ونشوف وش مكتوب لنا في README
هنا README ما يحتوي على أي شي مهم.
طيب نشيك على الـlog وبرضو ما بنلاقي شيء مهم.
الحين بنروح نشيك على المجلد المخفي اللي
يكون موجود في كل مرة نسوي clone واسمه “.git”
cd .git
نستعرض الملفات وفي ملف اسمه packed-refs بتلاحظون انه يحتوي على commit غير اللي موجود في الـlog ولو عرضناه بنلاقي فيه كلمة السر للمرحلة
31.
ناخذ كلمة السر وننتقل للمرحلة اللي بعدها
ssh bandit31@bandit.labs.overthewire.org -p 2220
------------------------------------------------------------------------------
في المرحلة 31←32 نفس المرحلة السابقة، نسوي clone في /tmp على مجلد جديد، ثم بعدين نروح على repo ونشوف وش مكتوب لنا في README
هنا قايل لنا إنه يبغى نسوي push لملف اسمه key.txt يحتوي على “May I come
in?” والبرانش
يكون master
طيب نسوي زي ما يبغى بالضبط، أول شيء ننشئ ملف اسمه key.txt ونخزن فيه نفس الكلام اللي طالبه “May I come in?” ، نحفظ الملف ثم نسوي له push بالخطوات التالية:
- أول حاجة نتأكد إن البرانش هو master
- نرفع الملف باستخدام git add key.txt بيطلع معاكم خطأ ولتجاوزه نستخدم الخيار -f فتصير الكوماندgit add key.txt -f
- بعدين نضيف الـcommit باستخدام git commit بيفتح لنا نافذة nano نكتب أي شي مثلا “Done” بعدين نقفل nano باستخدام ctrl+x بعدين نضغط y بعدين Enter
- الآن نسوي push باستخدام git push نكتب yes ثم نعطي كلمة السر للمرحلة الحالية
وبكذا انتهينا وبيعطينا كلمة السر للمرحلة 32
------------------------------------------------------------------------------
في المرحلة 32←33 يقولنا إننا خلصنا من الـgit لكن الحين لازم نلقى مهرب من الـshell، ولما ندخل على مرحلة 32 فعلا هذه الـshell غريبة وأي كوماند ندخلها لها ترجع تطبعها
لنا لكن تخلي الحروف كبتل.
------------------------------------------------------------------------------
مرحلة 33 تحتوي على ملف نص محتواه:
























Comments
Post a Comment