آموزش باگ RFU | آسیب پذیری Remote File Upload چیست؟
- کورش سنایی
- ۲۱ اسفند ۱۴۰۲
- زمان مطالعه: 5 دقیقه
سلام و درود به تمامی بچهای سایبری باز ایرانی; توی این مقاله قراره به آسیب پذیری RFU بپردازیم یکی از ساده ترین آسیب پذیری هایی که همین امروز میتونید باهاش سایت هک کنید. یکی از قدیمی ترین آسیب پذیری هایی که در دنیای وب وجود داره همینه که بهش میگیم Remote File Upload Vulnerability یعنی آسیب پذیری آپلود فایل ریموت که کامل بهتون توضیح میدم به چه صورت هستش و چرا به کارتون میاد .
آسیب پذیری Remote File Upload چیست؟
آپلود فایل یکی از مهم ترین بخش های هر وبسایت میتونه باشه; جایی که کاربر عکس پروفایل, رزومه, فیلم, فایل های Office و … رو آپلود میکنه; به جایی که شما این موارد رو آپلود یا بارگذازی میکنید میگن Uploader (آپلودر ) که خوب این آپلودر ها باید در برابر انواع فایل های جعلی و مخرب ایمن شده باشن یعنی اگر قرار هست که شما عکس پروفایل تنظیم کنید باید مثلا تنها فرمت jpg یا png که متعلق به عکس ها هستند رو بارگذاری کنید و اگر بتونید چیزی خارج از این فرمت ها آپلود کنید این آپلودر به درستی ایمن سازی نشده و میتونه آسیب پذیری سطح بالایی رو به تنهایی ایجاد کنه 🙂 حالا چطوری ؟
آموزش ویدیویی آپلود شل + دیفیس سایت + تنظیم بکدور
در این ویدیو به صورت عملی به شما نمایش بدیم که این آسیب پذیری چطوری رخ میده و در این ویدیو شمارو با طریقه هک یک وبسایت به صورت اصولی و حرفه ای آشنا میکنیم و یکی یکی مراحل رو در ویدیو های آینده به شما آموزش خواهیم داد به صورت کامل و جامع همچنین طریقه پیدا کردن تارگت مناسب برای تست نفوذ.
آسیب پذیری RFU چطوری ایجاد میشه ؟!
آسیب پذیری remote File Upload زمانی اتفاق میفته که برنامه نویسی که آپلودر رو ایجاد کرده به درستی فایلی که کاربر قرار هست آپلود کنه اعتبار سنجی نمیکنه; ساده تر بخوام بگم وقتی که شما یک فایلی رو در آپلودر میخواین آپلود کنید یکسری مواردی هست که باید بررسی بشن نظیر نام فایل, سایز فایل, نوع فایل و یا محتوای فایل . در نظر بگیرید که برنامه نویس یک لیست سیاه از فرمت فایل هایی که نباید قابلیت آپلود داشته باشن رو روی آپلودر برنامه نویسی میکنه که شما فقط قادر باشید.
مثلا فایل هایی با پسوند (فرمت) jpg آپلود کنید و فایل شما به این شکل خواهد بود : file.jpg اگر اینطوری این فایل رو آپلود کنید موردی نداره و موفقیت آمیز خواهد بود حالا اگر شما بیاین و این فایل رو آپلود کنید file.php طبیعتا به شما اجازه آپلود داده نمیشه چرا ؟! چون پسوند .php که مربوط به زبان برنامه نویسی php هست; در لیست سیاه آپلودر قرار داره حالا اگر شما بیاین و فایل رو به این اسم تغییر بدید file.php\0x00.jpg باز هم بنظرتون آپلودر از ما ایراد خواهد گرفت یا مثلا file.php7 ؟!
درست میگید خیر از ما ایراد نخواهد گرفت چرا !؟ چون پسوند php7 در لیست سیاه نیست و خوب شما میتونید یک فایلی رو در سرور آپلود میکنید که باعث میشه از سرور دسترسی بگیرید و در نهایت باعث هک شدن سایت میشه .
حالا میتونید کامل تصویر بالا رو درک کنید که هکر یک فایل مخرب به اسم وب شِل روی سایت آپلود میکنه و این فایل رو روی سایت باز میکنه و از این فایل به عنوان یک backdoor یا یک راه ورودی مخفی به سایت استفاده میکنه . و خوب به کل اطلاعات شما میتونه دسترسی داشته باشه و مثلا دیتابیس سایت که شامل هزاراان رکورد از اطلاعات شخصی کاربران نظیر نام نام خانوادگی شماره کارت شماره تماس و .. هست رو به سرقت ببره .
تاثیر آسیب پذیری File Upload چیست ؟!
ببنید این که این آسیب پذیری چه تاثیر مخربی میتونه داشته باشه به 2 مورد بستگی داره که مورد اول مربوط به محدودیتی هست که روی فایل بارگذاری شده ایجاد میشه و مورد دوم به این که برنامه نویس در چه بخشی از اعتبار سنجی فایل دچار اشتباه شده بر روی سایز فایل, نوع فایل یا مثلا محتوای فایل و …
در بدترین حالت، اعتبارسنجی نوع فایل (type) به درستی انجام نمیشود و پیکربندی سرور اجازه اجرای برخی انواع فایلها (مانند .php و .jsp) را به عنوان کد میدهد. در این سناریو، مهاجم میتواند فایل حاوی کد سمت سرور را آپلود کند که به عنوان یک وبشِل عمل میکند و عملا به او کنترل کامل روی سرور میدهد.
اگر نام فایل به درستی اعتبارسنجی نشود، مهاجم فقط با آپلود فایلی با نام مشابه میتواند فایلهای حیاتی را بازنویسی کند. همچنین، اگر سرور در برابر پیمایش دایرکتوری (directory traversal) نیز آسیبپذیر باشد، مهاجم حتی میتواند فایلها را در مکانهای غیرمنتظره آپلود کند.
فراموش کردن محدودیت اندازه فایل به مهاجم این امکان را میدهد تا با آپلود فایلهای حجیم، فضای دیسک موجود را پر کند و حمله DoS (سرویسدهیممنوع) انجام دهد.
سوءاستفاده از آپلود فایل بدون محدودیت برای بارگذاری web shell
همونطور که در پاراگراف بالا گفته شد, بدترین نوع این آسیب پذیری زمانی رخ میده که آپلودر نوع فایل رو اعتبار سنجی نمیکنه و شما میتونید فایل های server side script رو آپلود کنید مثل php,java, php و … این نوع فایل قابلیت این رو دارن که به عنوان کد روی سرور اجرا بشن . و باعث میشن که شما بتونید وب شل خودتون یا مون (backdoor) خودتون رو روی سایت داشته باشید .
اگر شما بتونید به صورت موفقیت آمیز فایل مخرب خودتون رو روی سرور آپلود کنید . به این معنی هست که شما میتونید فایل هی مختلف رو بخونید یا ایجاد کنید و حتی از سرور سایت برای حملات داخلی به خود شبکه و یا به سرور های خارج از شبکه ایجاد کنید . برای مثلا کد php پایین که فقط 1 خط کد هست میتونه به شما این امکان رو بده که فایل های مهم روی سرور رو بخونید که میتونه شامل یوزر و پسورد باشه یا شامل فایل کانفیگ دیتابیس و … باشه :
کد بالا در یک فایلی به نام مثلا exploit.php ذخیره میشه و در آپلودر این فایل رو آپلود میکنید و مثلا این فایل در آدرس پایین قرار بر روی سرور ذخیره میشه و وقتی که شما این آدرس رو در مرورگرتون وارد کنید محتوای فایلی که درون کد نوشته شده رو به شما نمایش میده ما در کد بالا ادرس فایل به خصوصی رو ننوشتیم و شما میتونید هر آدرسی رو قرار بدید و محتوای فایل های مختلف رو بخونید مثل :
/etc/passwd
site.com/uploads/exploit.php
آموزش بایپس آپلودر در File Upload
دوستان نسبت به, نوع محدودیتی که رو آپلودر صورت گرفته شما باید بایپس مد نظر رو انجام بدید که خوب تک تک اینهارو بهتون توی دوره آموزش هک وبسایت توضیح دادیم .