‹ بازگشت به کتابخانه‌ی رایت‌آپ‌ها
File Upload شدت: بحرانی

آپلود وب‌شل با دور زدن بررسی پسوند از طریق Double Extension

وقتی بررسی پسوند فقط آخرین بخش نام فایل را نگاه می‌کند.

نویسنده: تیم PentesterHub

اگر بررسی پسوند آپلود فقط آخرین قسمت نام فایل (بعد از آخرین نقطه) را چک کند، نامی مثل shell.php.jpg از نظر این بررسی یک فایل .jpg است و قبول می‌شود؛ اما بسته به تنظیمات وب‌سرور (مثل یک قانون قدیمی AddHandler در Apache)، این فایل همچنان می‌تواند به‌عنوان PHP اجرا شود.

گام بعدی: اجرا

بعد از آپلود موفق، باید مسیر دقیق فایل ذخیره‌شده را پیدا و مستقیماً در URL باز کرد؛ اگر کد PHP داخل فایل اجرا شود (نه نمایش داده شود)، اجرای کد روی سرور (RCE) محقق شده است.

راه‌حل

بررسی پسوند باید روی کل رشته‌ی نام فایل انجام شود، به‌همراه تولید یک نام کاملاً تصادفی برای فایل ذخیره‌شده (نه حفظ نام اصلی کاربر) و استفاده از یک whitelist دقیق پسوندهای مجاز.

تمرین عملی در آزمایشگاه‌های File Upload ›