discord icon
سرور دیسکورد گاردایران

پست های پیشنهاد شده

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

در این پست قصد دارم به شما نحوه پچ باگ 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

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


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

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

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

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

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

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

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

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

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