جستجو در تالارهای گفتگو
در حال نمایش نتایج برای برچسب های 'جلوگیری از باگ rfu'.
2 نتیجه پیدا شد
-
RFU.mp4
-
- rfu
- تست و نفوذ
- (و 11 مورد دیگر)
-
با سلام خدمت کاربران و مدیران عزیز گارد ایران در این پست قصد دارم به شما نحوه پچ باگ 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