آشنایی با مسابقات امنیتی Capture The Flag
مسابقات CTF حاوی سوالاتی در زمینههای مختلف امنیت اطلاعات بوده و در هر سوال پس از نفوذ به یک سیستم، مهندسی معکوس یک نرمافزار یا پیدا کردن یک آسیبپذیری و استفاده از آن، عبارتی به عنوان flag دریافت شده و به عنوان پاسخ سوال ارسال میشود. مباحثی که از آنها سوال داده میشود معمولا در زمینههای زیر هستند:
۱) مبحث Binary Exploit: پیدا کردن مشکل در یک برنامه (مثل buffer overflow یا Format String) و استفاده از آن برای دسترسی به یک shell که از طریق setuid امکان دسترسی به فایل حاوی flag وجود خواهد داشت.
۲) مبحث Reverse Engineering: یافتن طرز کار و دور زدن منطق برنامه برای بدست آوردن flag
۳) مبحث Cryptography: مسائل مربوط به رمزنگاری و decrypt کردن عبارت flag
۴) مبحث Computer Forensics: پیدا کردن flag از روی ترافیک شبکه، Memory Dump یا کپی دیسکها
۵) مبحث Web: کشف آسیب پذیری و نفوذ در برنامههای تحت وب برای بدست آوردن flag
۶) مبحث Pen Testing: نفوذ به سیستمهای تحت شبکه و بدست آوردن flag از روی سیستم مورد نظر
۷) مبحث Steganography: پیدا کردن flag از روی تصاویر کد شده
به عنوان یک مثال، سوالی ساده از مبحث رمزنگاری مسابقهی picoCTF-2018 (که البته هنوز در حال اجرا میباشد!!!) را بررسی میکنیم. در این سوال عبارت {!cvpbPGS{guvf_vf_pelcgb داده شده که با توجه به شکل flagهای این مسابقه که همگی با عبارت picoCTF شروع میشوند، متوجه میشویم که این سوال در مورد روش قدیمی رمزنگاری است که به صورت جایگزینی عمل کرده و هر حرف، معادلی به عنوان کلید دارد. با قرار داده picoCTF معادل ۷ کاراکتر اول عبارت رمزشده، مشخص است که c=p v=i b=o g=t s=f در این عبارت برقرار بوده و باید معادل مابقی کاراکترها تشخیص داده شود تا flag بدست آید. برای انجام اینکار میتوان تمامی حالات را با یک برنامهی ساده بررسی کرده و یا اینکه از یک سایت مثل
https://quipqiup.com برای اینکار استفاده کرد. در نهایت {!picoCTF{this_is_crypto به عنوان flag بدست خواهد آمد.
در آینده، سوالات بیشتری از این مسابقات را در زمینههای مختلف بررسی خواهیم نمود. البته بررسی picoCTF-2018 بماند بعد از اتمام مسابقه!!!
http://telegram.me/OxAA55