
اخیراً یه گزارش از یه محقق امنیتی خوندم که واسه من جالب بود؛ نه به خاطر پیچیدگی آسیبپذیری، به خاطر سادگی ایدهای که پشت کشف اون بود.
ماجرا از بررسی یه URL مربوط به بارگذاری تصاویر توی یکی از سرویسهای گوگل شروع شد.
محقق بهجای اینکه فقط رفتار عادی برنامه رو بررسی کنه، یه سؤال ساده از خودش پرسید:
> اگر این ورودی به درستی اعتبارسنجی نشده باشد چه؟
برای همین یک Payload ساده از نوع Path Traversal را امتحان کرد:
../../../../../../../etc/passwd
نتیجه این آزمایش، کشف یه آسیبپذیری Local File Inclusion (LFI) بود که تهش باعث شد گوگل این گزارش رو تأیید کنه و ۳,۱۳۴ دلار پاداش Bug Bounty بهش پرداخت بشه.
چیزی که از این گزارش یاد گرفتم
خیلی وقتا تصور میکنیم کشف آسیبپذیریها نیاز داره به ابزارهای عجیب، اکسپلویتهای پیچیده یا دانش خیلی خاص.
اما بخش زیادی از موفقیت در Bug Bounty و تست نفوذ، به این برمیگرده که:
سؤال درست بپرسیم
فرضیهسازی کنیم
رفتارهای غیرمنتظره رو آزمایش کنیم
توی این گزارش، ارزش اصلی در Payload نبود.
ارزش اصلی توی این بود که محقق به یه ورودی ساده با نگاه امنیتی نگاه کرد.
---
یه نکته واسه برنامهنویسا
اگر توی برنامتون:
فایل بارگذاری میکنین
تصویر نمایش میدین
مسیر فایل رو از ورودی کاربر میگیرین
حتماً این موارد رو در نظر بگیرید:
اعتبارسنجی ورودی ها
استفاده از Allow List
محدود کردن دسترسی فایلها
عدم اعتماد به مسیرهای ارسالشده توسط کاربر
خیلی از آسیبپذیریهای مهم، نتیجه یه اشتباه کوچیک توی اعتبارسنجی ورودی هاست.
---
نهایتا اینکه:
چیزی که این گزارش به ما یادآوری میکن اینه که:
توی امنیت، همیشه پیچیدهترین حملهها خطرناکترین نیستن.
بعضی وقتا یه سؤال ساده،
یه تست ساده،
و چند دقیقه کنجکاوی،
میتونه به کشف یه آسیبپذیری واقعی و دریافت ۳,۱۳۴ دلار پاداش از گوگل منجر بشه.
---
منبع:
He Typed “../../../../../../../etc/passwd” After a Google Image URL. Google Paid Him $3,134.
برنامه نویس باشید و ازش لذت ببرید.
میم جیم صاد
MimJimSad