🛡️ باگ CSRF: راهنمای کامل کشف، اکسپلویت و انواع آن

مقدمه

باگ Cross-Site Request Forgery (CSRF) یا جعل درخواست بین‌وبگاهی، یکی از آسیب‌پذیری‌های رایج و خطرناک وب است. این آسیب‌پذیری به مهاجم اجازه می‌دهد تا کاربر معتبر را فریب دهد و او را وادار به انجام عملی ناخواسته در یک وب‌اپلیکیشن کند.

مکانیزم CSRF بر پایه اعتماد مرورگر به کوکی‌های جلسه (Session Cookies) است و می‌تواند منجر به:

تغییر اطلاعات کاربر

انتقال وجه بانکی

یا حتی تصاحب کامل حساب کاربری شود.

این حمله در لیست OWASP Top 10 نیز قرار دارد و معمولاً در برنامه‌هایی دیده می‌شود که فقط به کوکی برای احراز هویت متکی هستند.


📌 CSRF چیست و چگونه کار می‌کند؟

CSRF زمانی رخ می‌دهد که یک سایت مخرب، مرورگر کاربر را مجبور به ارسال درخواستی ناخواسته به یک سایت معتبر کند. مرورگر به‌طور خودکار کوکی‌های نشست را ضمیمه درخواست می‌کند، و چون سایت مقصد قادر به تشخیص جعلی بودن درخواست نیست، عملیات انجام می‌شود.

🔹 تمرکز اصلی این حمله روی درخواست‌های تغییر وضعیت (State-Changing) است، نه صرفاً خواندن داده‌ها.

🎯 مثال ساده

http://bank.com/transfer?to=BOB&amount=100

مهاجم می‌تواند این درخواست را تغییر دهد:

http://bank.com/transfer?to=MARIA&amount=100000

و آن را در یک ایمیل یا تگ پنهان کند. اگر کاربر در بانک لاگین باشد، وجه منتقل می‌شود.


📊 انواع CSRF

نوع CSRF توضیح مثال ریسک

مبتنی بر GET ساده‌ترین نوع، استفاده از لینک‌ها و بسیار آسان برای اکسپلویت
مبتنی بر POST استفاده از فرم‌های HTML و ارسال خودکار … نیاز به تعامل کاربر
مبتنی بر JSON دور زدن CORS با text/plain enctype=”text/plain” خطرناک برای APIها
مبتنی بر Method تغییر روش درخواست (PUT, PATCH) تغییر به POST برای دور زدن بستگی به API دارد
Login CSRF ورود اجباری کاربر به اکانت مهاجم وادار کردن قربانی به لاگین افشای داده‌های حساس
Stored CSRF ذخیره کد مخرب در سایت هدف CSRF در بخش نظرات حمله گسترده
بر اساس PUT/DELETE مخصوص APIهای مدرن با XMLHttpRequest محدود به CORS


🔍 کشف CSRF

روش‌های دستی

بررسی درخواست‌های حساس (POST, PUT, DELETE) با Burp Suite یا DevTools

بررسی SameSite Cookie

بررسی نبود CSRF Token یا هدر سفارشی

ابزارها

ابزار کاربرد

Burp Suite تولید PoC با CSRF PoC Generator
OWASP ZAP اسکن خودکار CSRF
XSRFProbe / Bolt ابزارهای پایتونی برای تست CSRF
Burp PoC Creator افزونه Burp برای ساخت PoC


💥 آموزش اکسپلویت CSRF

اکسپلویت پایه

<html>
  <body>
    <form action="https://vulnerable-site.com/change-email" method="POST">
      <input type="hidden" name="email" value="attacker@example.com">
    </form>
    <script>document.forms[0].submit();</script>
  </body>
</html>

اکسپلویت پیشرفته

استفاده از enctype=”text/plain” برای دور زدن CORS

حذف یا تغییر توکن‌های ضعیف CSRF

استفاده از برای دور زدن بررسی Referer


🛡️ پیشگیری از CSRF

روش توضیح

CSRF Token تولید توکن منحصربه‌فرد و اعتبارسنجی آن
Double Submit Cookie ذخیره توکن در کوکی + پارامتر درخواست
SameSite Cookies جلوگیری از ارسال کوکی در درخواست‌های Cross-Site
هدرهای سفارشی برای درخواست‌های AJAX
بررسی Referer/Origin کنترل مبدأ درخواست
استفاده از فریم‌ورک‌ها مثل Spring, Django, Rails با محافظت داخلی

❌ روش‌های ناکارآمد:

استفاده صرف از POST

تراکنش چندمرحله‌ای بدون توکن

URL Rewriting


📌 نتیجه‌گیری

CSRF یکی از تهدیدات جدی امنیت وب است. این حمله می‌تواند با چند خط کد ساده، کنترل کامل حساب کاربر را به مهاجم بدهد. اما با پیاده‌سازی توکن‌های CSRF، SameSite Cookies و هدرهای سفارشی، می‌توان به‌سادگی جلوی آن را گرفت.

itachi

ITACHI

سلام یچه ها امیدوارم از مقاله باگ CSRF

خوشتون امده باشه و لذت برده باشین

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *