رفتن به مطلب
انجمن تیم امنیتی گارد ایران

ارسال های توصیه شده

 با سلام خدمت کاربران و مدیران عزیز گارد ایران

در این پست قصد دارم به شما نحوه پچ باگ RFU بدم . 

RFU : Remote File Upload

یک توضیح مختصر  :   هنگام اپلود یک فایل در سرور این اسیب پذیری به وجود می اید که هکر فایل مخرب خودش رو در سرور آپلود می کند (shell) به صورت کلی این اسیب پذیری بسیار خطر ناک است و باعث می شود که هکر دسترسی کامل به سایت بگیرد ولی حالت های دیگری هم وجود دارد که خطر این باگ کمتر می شود مثلا هکر نمی تواند فایل php خودش که شل است رو آپلود کنه به جای آن فایل html خودش که دیفیس پیج است رو آپلود می کنه یه کمی توضیح طولانی شد خب

 

حالا میریم سراغ جلو گیری از باگ  RFU  در کد نویسی 

 

اولین قدم باید فایل ها در یک جای مشخص و خاص باشد می توانید از این دستور استفاده کنید :

move_uploaded_file($_FILES['upload']['tmp_name'],"Guardiran/{$_FILES['upload']['name']}");

الان فایل های اپلودی در فولدری به نام Guardiran قرار می گیرند .  

حالا برای اینکه فایل های php قابل آپلود نباشند  :

if(end(explode('.',$_FILES['upload']['name'])) !== 'php'){
move_uploaded_file($_FILES['upload']['tmp_name'],"Guardiran/{$_FILES['upload']['name']}");
}else{
}

تا الان آپلودر ما کمی وضعیتش بهتر شده

 بعضی از سایت ها از این فیلترینگ استفاده می کنند ولی  امنیت بسیار پایینی دارد چون زبان php به حروف بزرگ و کوچک حساس است یعنی ما گفتیم با در آخر نام ... php  نباشد اما برای مثال 

هکر با این نام  اپلود می کند b374k.PHP که هر دو فرمت php هستند اما از نظر حروف کوچک و بزرگ باهم فرق دارند پس کد های خودمون رو تغییر می دهیم . 

به این صورت

if(end(explode('.',$_FILES['upload']['name']))  == 'jpg'){
move_uploaded_file($_FILES['upload']['tmp_name'],"Guardiran/{$_FILES['upload']['name']}");
}else{
}

الان یک اپلودر با امنیت خوب داریم ولی هنوز با بایپس ها و متد و... امکان دور زدن وجود دارد پس امنیت رو بالا تر می بریم تا کار هکر سخت تر شود .

کاری می کنیم که هکر به راحتی فایل خودش رو پیدا نکنه و از تابع rand استفاده می کنیم و کد ها رو به این صورت می نویسیم :‌

if(end(explode('.',$_FILES['upload']['name']))  == 'jpg'){
$ch = rand();
move_uploaded_file($_FILES['upload']['tmp_name'],"Guardiran/{$ch}.jpg");
}else{
}

می توانید بعد از else (در غیر این صورت ) خطای خود را با html و css طراحی کنید .

 

چند راه پیشنهادی جهت رفع بهتر باگ RFU

بهتر است که از یک سرور اختصاصی استفاده کنید و فایل های اپلودی خودتون رو در یک سرور دیگر آپلود کنید . 

دایرکتوری فایل های اپلود با دایرکتری فایل های اصلی متفاوت باشد . 

 

امیدوارم از این پست لذت برده باشید .

Download Uploader.zip

لینک به دیدگاه
به اشتراک گذاری در سایت های دیگر

برای ارسال دیدگاه یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید دیدگاهی ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در سایت ما ثبت نام کنید. عضویت خیلی ساده است !

ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید

ورود به حساب کاربری
 اشتراک گذاری

انجمن تیم امنیتی گارد ایران

تیم امنیتی گارد ایران یک گروه مستقل است که قوانین آن با خط مشی جمهوری اسلامی ایران مغایرت ندارد. تیم امنیتی گارد ایران از سال 1393 فعالیت خود را آغاز کرد و هدف این تیم تامین امنیت سایت ها و سرورهای ایرانی است. تیم ما همیشه برای دفاع از مرزهای سایبری سرزمین عزیزمان ایران آماده است.

شبکه های اجتماعی

×
×
  • اضافه کردن...