SirMz
SirMz
خواندن ۴ دقیقه·۴ سال پیش

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

RFU Vulnrability
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 :)

securityrfun00b
شاید از این پست‌ها خوشتان بیاید