آپلود وبشل با دور زدن بررسی پسوند از طریق Double Extension
وقتی بررسی پسوند فقط آخرین بخش نام فایل را نگاه میکند.
اگر بررسی پسوند آپلود فقط آخرین قسمت نام فایل (بعد از آخرین نقطه) را چک کند، نامی مثل shell.php.jpg از نظر این بررسی یک فایل .jpg است و قبول میشود؛ اما بسته به تنظیمات وبسرور (مثل یک قانون قدیمی AddHandler در Apache)، این فایل همچنان میتواند بهعنوان PHP اجرا شود.
گام بعدی: اجرا
بعد از آپلود موفق، باید مسیر دقیق فایل ذخیرهشده را پیدا و مستقیماً در URL باز کرد؛ اگر کد PHP داخل فایل اجرا شود (نه نمایش داده شود)، اجرای کد روی سرور (RCE) محقق شده است.
راهحل
بررسی پسوند باید روی کل رشتهی نام فایل انجام شود، بههمراه تولید یک نام کاملاً تصادفی برای فایل ذخیرهشده (نه حفظ نام اصلی کاربر) و استفاده از یک whitelist دقیق پسوندهای مجاز.