ویرگول
ورودثبت نام
Bamboo Tech
Bamboo Tech
خواندن ۲ دقیقه·۵ سال پیش

معرفی باگ CSRF

باگ CSRF چیست؟


باگ csrf در اصل یکی از رایج ترین باگ ها در دنیای وب است که به هکر امکان دسترسی از حساب کاربری را میدهد هدف اصلی هر هکر برای استفاده از این باگ دسترسی به حساب کاربری ادمین و ریست پسورد است که باعث میشود هکر به وب سایت مورد نظر دسترسی پیدا کند و عمل مخربانه خود را انجام دهد.

این باگ میتواند به حد خیلی زیادی خطرناک باشد در واقع باگ csrf مخفف Cross site request forgery است که یعنی جعل یا دسترسی به نشست های وب سایت این عمل با ارسال یک درخواست (request) از طرف هکر به ادمین انجام میشود که سبب دسترسی غیر مستقیم از طرف هکر میشود

چگونه باگ CRSF را پیدا کنیم؟

به کلی پیشنهاد میشود شما امنیت سایت خود را به صورت کامل بررسی کنید و اسکن های متعددی انجام دهید چرا که ممکن است هر نوع باگی در وب سایت شما وجود داشته باشد و راهی ساده برای دسترسی به پنل ادمین را برای فرد هکر آزاد سازید برای اسکن وب سایت خود میتوانید از اسکنر های موجود برای اسکن وبسایت استفاده کنید همانند وگا ، اسکیپ فیش و ابزار های دیگری که برای نصب آنها در پلتفرم لینوکس میتوانید از ابزار ch8tools نیز استفاده کنید


چگونه باگ CSRF را پچ کنیم؟

برای رفع این باگ و گذاشتن دیواری در برابر فرد هکر میتوانید از کپچا و یا محدودیت زمان ورود کاربر و از بین بردن  session و یا روش های دیگری را مورد استفاده قرار دهید

برای کار با session ها در php باید در وهله اول باید سیزن را استارت کنید

session_start();

با قطعه کد بالا در اصل ما session را استارت میکنیم و حالا باید یک توکن تصادفی بسازیم که به صورت زیر نوشته میشود

$tk = md5(uniqid(rand(), TRUE));

و حالا باید یک session ایجاد کنیم و مقدار session را برابر با این توکن قرار دهیم ، به این صورت :

$_SESSION['bambootech'] = $tk;

حال باید داخل تگ فورم در سورس یک اینپوت ایجاد کنیم از نوع hidden و مقدار یا value را برابر با متغیر $tk و name را برابر با نام session ساخته شده قرار دهیم

<input type=&quothidden&quot name =&quotbambootech&quot value=&quot<?php echo $tk; ?>&quot>

حالا کافی است در سورس php که مقادیر را توسط متد POST دریافت میکند و به اصطلاح پنل کاربر است کدی مبنی بر این که توکن داخل سیزن با توکن دریافتی مطابقت دارد اضافه کنیم

if ($_SESSION['bambootech'] === $_POST['bambootech']){ // کاری که در صورت درست بودن انجام میدهد }else{ //کاری که در صورت اشتباه بودن انجام میدهد }

در اخر شما باید مقدار session را خالی کنید که میتوانید از قطعه کد زیر استفاده نمایید

unset($_SESSION['bambootech']);
CSRFباگ csrfامنیتتست نفوذ
?Bamboo Technology channel? ⚡️The skys the limit with us!⚡️ ?programming ?Security
شاید از این پست‌ها خوشتان بیاید