اسیب پذیری (RFU(Remote File Upload

RFU Vulnrabilityآسیب پذیری RFU یا Remote File Upload یک آسیب پذیری در سطح وب میباشد که باعث میشود که یوزر فایل غیرمجاز رو توی اون سرور یا وب سایت آپلود کند.فایل هایی که یوزر در وبسایت آپلود میکند خطر قابل توجهی برای وبسایت ها و وب سرور ها دارد.نکته : این آسیب پذیری بیشتر بررویه CMS های آماده و غیر امنی که بیشتر عموم و یا مراجع دولتی استفاده میشوند یافت میشود.قدم اول برای بسیاری از این نوع حملات این است که اتکر یا همان هکر مقداری کد را روی سیستم مورد نظرش را اجرا کند تا بتواند حمله را پیش ببرد.استفاده از آپلود فایل ناخواسته میتواند به قدم اول برای حمله کمک کند.عواقب این فایل های نخواسته که بر روی سرور یا وبسایت برای دسترسی گرفتن از سرور آپلود میشود میتواند متفاوت باشد.برای مثال :دسترسی گرفتن کامل از سرور یا سیستمدسترسی داشتن به بیشتر پایگاه داده یا فایل های سیستمی بزرگ و حساسهدایت کردن حمله به قسمت Back-End سایتانجام حملات Client-Sideو دیفیس کردن وبسایتو...انجام این حمله و تبعات آن بستگی به این دارد که اپلیکیشن با فایل هایی که اپلود میشود چه کاری را انجام میدهد یا فایل ها در کجا ذخیر میشوند.با توجه به مطالب گفته شده این حمله به دو روش میتواند انجام شود :گذاشتن بکدور بر رویِ سیستمفراخوانی فایل اپلود شده با توجه به دایرکتورینمونه ایی از چگونگی اکسپلویت این آسیب پذیریتشخیص این حمله یا (WAF MECHANISM)برای جلوگیری از این حمله یکسری مکانیزم برای وف وجود دارد که باعث میشود که هر نوع فایلی در قسمت اپلود فایل، نتوان اپلود کرد.نکته : Web Application Filter یا به اختصار WAF سیستمی است که بین فایروال و وب سرور قرار گرفته و از ورود ترافیک های مشکوک به وب سایت و از حملات به سایت های وب سرور جلوگیری و آن هارا Block میکند.برخی از این مکانیزم ها عبارت اند از : مکانیزم شناسایی امضائ فایل با جاوا اسکریپت (Client JavaScript Detection) در این نوع مکانیزم وف پسوند یا امضائ فایل را بررسی میکند تا غیر از فایل های ذکر شده یا مجاز فایل غیره آپلود نشود.مکانیزم شناسایی MIME Type از سمت سرور (Server MIME Type Detection) در این نوع مکانیزم Content-Type محتوایی که آپلود میکنیم معمولا شناسایی و کنترل میشودمکانیزم (Server Directory Path Detection) در این مکانیزم زمانی که Policy Settings خوب Configure نشده باشد یوزر یا اتکر میتواند جایی که شل اپلود میشود را ببیند یا مسیری که شل اپلود میشود را تغییر دهد.مکانیزم کنترل امضائ فایل از سمت سرور یا (Server-Side File Extension Detection) در این مکانیزم محتوای مربوط به فایل همراه با امضائ فایل یا پسوند کنترل میشودمکانیزم شناسایی محتوای فایل از سمت سرور (Server-Side File Content Detection) در این مکانیزم وف فایل های مجاز و فایل هایی که محتوی کد های مخرب هستند را تشخیص میدهد.و...دور زدن مکانیزم های وف یا (WAF ByPass)با توجه به مطالب بالا هرکدام از این مکانیزم های ذکر شده،باعث جلوگیری از آپلود فایل های مخرب بر رویِ وب سایت یا وب سرور میشوند.ولی با کمی فکر کردن و تحلیل میتوان فهمید که این مکانیزم ها هرکدام مشکلاتی را در بر دارند که باعث میشود که این مشکلات را بتوان دور زد یا به اصطلاح (Bypass) کرد.برخی از این روش های بایپس را در زیر با توجه به مطالب بالا ذکر میکنم.احراز هویت کلاینت با جاوا اسکریپت یا (Javascript client authentication) ایجاد یک فایل مجاز،کپچر کردن ترافیک ها،تغییر دادن کد های مخرب برای اجراانواع معتبر MIME یا (MIME Type's Validation) تغییر Content-Type به طور مستقیم که میتوانیم MIME های مجاز را در نظر بگیریم تغییر فرم چندبخشی حساس به اطلاعات انوع رایج MIME .html text/html .xml text/xml .txt text/plain .rtf application/rtf .pdf application/pdf .word application/msword .png image/png .gif image/gif .jpeg,.jpg image/jpeg .au audio/basic mid,.midi audio/midi,audio/x-midi .ra, .ram audio/x-pn-realaudio .mpg,.mpeg video/mpeg .avi video/x-msvideo .gz application/x-gzip .tar application/x-tar application/octet-streamبایپس به روش Null Byte یا Double extension میتوان فایل ها را به دو روش shell.php%00.jpeg یا به روش shell.php.jpegو...جلوگیری یا (Prevention)با توجه به مطالب بالا جلوگیری از اپلود کردن فایل مخرب در اپلودر های وب سایت هم روش های زیادی و ساده ایی دارد که به طور ساده چند نمونه را در زیر ذکر میکنممجاز کردن "فقط" فایل های نامبرده برای اپلودتایید کردن پسوند فایل و یا امضائ فایلاسکن کردن Malware هاپاک کردن کد های مخرب در فایلست کردن طول و اسم و حجم فایلو...Writen By : MadAngel :)