قمنا بتغطية مثال آخر على ثغرة أمنية ثنائية لتجاوز سعة المخزن المؤقت. تم تمكين NX في الملف الثنائي لمنع تنفيذ التعليمات البرمجية في المكدس ولكن هدفنا كان التحكم في تدفق التنفيذ وإعادة توجيهه إلى وظيفة "الفائز" لطباعة العلم. لقد أنشأنا نمطًا يسبب خطأ التجزئة ثم استخدمنا عنوان وظيفة "الفائز" بحيث يشير سجل RIP إليها بعد أن يصل إلى خطأ التجزئة. كان هذا جزءًا من HackTheBox ريج مقدمة لمسار الاستغلال الثنائي.

احصل على ملاحظات تجاوز سعة المخزن المؤقت

الدورة العملية الكاملة لاختبار اختراق تطبيقات الويب

أبرز مقاطع الفيديو

يمكننا إلقاء نظرة على المعلومات القابلة للتنفيذ، وعلى الأخص يمكننا أن نرى أنها 64 بت ولم يتم تجريدها مما يعني أنه لا تتم إزالة معلومات تصحيح الأخطاء ويمكن عرض الوظيفة الرئيسية بسهولة. سنقوم بتحليل هذا الثنائي باستخدام Radare2. كان هدفنا هو عرض الوظائف الموجودة في الكود والأهم من ذلك أننا أردنا التركيز على وظيفة مسماة الفائز().

تقوم هذه الوظيفة بطباعة علامة التحدي فقط عند استيفاء شرط معين. سنرغب في إعادة توجيه تدفق تنفيذ التعليمات البرمجية لاستدعاء الفائز() وظيفة. لذلك بدلاً من إعادة توجيه تنفيذ التدفق إلى عنوان الإرجاع (كما هو الحال عادةً في سيناريوهات الاستغلال الثنائي العادية)، سنقوم بإعادة توجيه تدفق التنفيذ للوصول إلى وظيفة الفائز ولهذا نحتاج إلى تشغيل خطأ التجزئة أولاً. ثم نبحث عن عنوان الفائز() الوظيفة من خلال عرض قائمة الوظائف في Radare2.

بعد حدوث خطأ في التجزئة، نلقي نظرة على المؤشر الأساسي ومؤشر المكدس ونجد الإزاحة التي وجدناها في النهاية 56 ثم سنقوم بإنشاء 56 بايت فقط ثم نضيف عنوان وظيفة الفائز.

تجول الفيديو

عن المؤلف

أقوم بإنشاء ملاحظات حول الأمن السيبراني وملاحظات التسويق الرقمي والدورات التدريبية عبر الإنترنت. أقدم أيضًا استشارات التسويق الرقمي بما في ذلك، على سبيل المثال لا الحصر، تحسين محركات البحث وإعلانات Google وMeta وإدارة CRM.

عرض المقالات