SmashTheStack #Level 05 walkthrough

بسم الله الرحمن الرحيم

اللهم لا علم لنا الا ماعلمتنا انك انت العليم الحكيم

اليوم باذن الله نكمل سلسلة تحديات موقع SmashTheStack

واليوم معنا المرحلة الخامسة

اول شي نلقي نظرة على الكود










الكود عبارة عن اعادة كتابة لما تكتبه على سطر الاوامر والخطا الواضح فيه هو استخدام الدالة strcpy لانها لاتحدد عدد البايتات وبذلك يصبح لدينا طفح بالبرنامج

المتغير buf ياخذ 128 بايت طيب لو اعطيناه اكثر من البايتات هذه وش ممكن يصير ؟

نشوف ...




عطانا المؤشر الاول لثغرات الفيض وهو Segmentation fault

نحمل البرنامج في gdb ونكرر العملية




ممتاز ولكن الى الان ماوصلنا لل eip نحاول نزيد البايتات ونشوف




نشوف registers


مثل مانتوا شايفين قدرنا نكتب على eip واصبح يؤشر على 42424242 وهي الاربع B اللي كتبناها

والشي الاخر اللي يهمنا هو مؤشر المدكس (Stack PTR esp) وهو المؤشر اللي يدلنا على مكان الذاكرة

الان كل اللي علينا نجيب الشل كود تبعنا



"\xeb\x18\x5e\x89\x76\x08\x31\xc0\x88\x46\x07\x89\x46\x0c\x89\xf3\x8d\x4e\x08\x8d\x56\x0c\xb0\x0b\xcd\x80\xe8\xe3\xff\xff\xff/bin/sh"

وهو من 38 بايت

والناتج راح يصير 140 اللي هي سببت الفيض ناقص عدد بايتات الشل وهي 38 والناتج 102

الان نعوض NOPs وهي ماتؤدي اي شي بمعنى اخر اذا وصل لها المؤشر يروح للتعليمه اللي بعده

والغرض منها الوصول للشل تبعنا

الان 

مثل مانتوا شايفين اخر الاستغلال وضعت AAAA والنتيجة اعطاني خطا لان العنوان هذا ماهو موجود بالذاكرة

الان نرجع للمؤشر المكدس اللي باول صورة ونحلله عشان نضع قيمة العودة المناسبة






الان كل اللي علينا نغير AAAA باحد العناوين الموجود فيها NOPs عشان يعطينا الشل



فعلنا عطانا شل نجرب نفس الاستغلال خارج gdb

بالفعل نجحنا بالاستغلال ولله الحمد وتم الحصول على باسوورد المرحلة السادسة

الى هنا ينتهي الشرح

اذا اعجبتك فاذكر الله وادع لي وان لم اعجبك فانصحني لاصبح افضل



تعليقات

المشاركات الشائعة من هذه المدونة

CRLF injection [\r\n Carriage Return]

Study in Nosql-Injection-Mongodb