صفحه اصلی»مقالات : CSRF چیست؟

CSRF چیست؟

CSRF چیست

اشتراک گذاری:

حمله CSRF چیست؛ این نوع حمله را می‌توان به دزدی بی‌صدا تشبیه کرد؛ جایی‌که مهاجم، از اعتماد سیستم به کاربر سوءاستفاده می‌کند و بدون آگاهی او، دست به اقداماتی مانند تغییر رمز عبور یا انتقال وجه می‌زند. در ظاهر، همه چیز قانونی است، اما در پشت پرده، کنترل در دست مهاجم است. در این مقاله قصد داریم به‌طور کامل بررسی کنیم که حمله CSRF چگونه کار می‌کند، چطور ساخته و اجرا می‌شود، چگونه می‌توان از آن جلوگیری کرد و چه تفاوت‌هایی با حملات XSS دارد.

CSRF چیست؟

CSRF که مخفف عبارت Cross-Site Request Forgery به‌معنای «جعل درخواست میان‌وب‌سایتی» است، یکی از آسیب‌پذیری‌های جدی و رایج در حوزه‌ی امنیت وب محسوب می‌شود. در این نوع حمله، مهاجم کاربر را فریب می‌دهد تا بدون آگاهی و رضایت، یک درخواست ناخواسته را از طرف حساب کاربری خودش در یک سایت معتبر ارسال کند. این اتفاق معمولاً زمانی رخ می‌دهد که کاربر در سایت هدف لاگین کرده و سشن فعال دارد. مهاجم از این فرصت سوءاستفاده می‌کند و درخواست‌هایی مانند «تغییر رمز عبور»، «انتقال وجه»، «ثبت سفارش» یا «ارسال پیام» را به سرور ارسال می‌کند. به عبارتی دیگر، CSRF با دور زدن بخشی از سیاست امنیتی «مبدأ یکسان» (Same-Origin Policy) به هدف خود می‌رسد. چون عملیات به‌ظاهر از سمت کاربر انجام می‌شود، سرور آن را معتبر تلقی می‌کند. برای مقابله با این تهدید، استفاده از «توکن CSRF»، اعتبارسنجی منبع درخواست (Referer/Origin) و اعمال محدودیت در کوکی‌های احراز هویت از روش‌های موثر و توصیه‌شده هستند.

حمله CSRF چگونه کار می‌کند؟

CSRF چیست

برای اینکه حمله‌ی CSRF یا همان جعل درخواست میان‌وب‌سایتی عملی شود، باید سه شرط مهم به‌طور هم‌زمان برقرار باشند:

۱. وجود یک عملیات قابل هدف

در برنامه‌ی مورد نظر، باید عملی وجود داشته باشد که مهاجم قصد اجرای آن را داشته باشد. این عمل می‌تواند یک اقدام حساس با دسترسی بالا باشد، مانند «تغییر سطح دسترسی کاربران دیگر» یا عملی مرتبط با داده‌های کاربر مانند «تغییر رمز عبور». وجود چنین نقاط هدف، زمینه‌ی اجرای حمله را فراهم می‌کند.

۲. مدیریت نشست مبتنی بر کوکی بدون تأیید اضافی

درخواست برای اجرای عملیات باید از طریق HTTP Request انجام شود و برنامه تنها بر پایه‌ی کوکی نشست کاربر (Session Cookie) کار کند. یعنی هیچ سازوکار دیگری مانند «توکن CSRF»، تأیید مبدأ درخواست یا احراز هویت مجدد در فرآیند وجود نداشته باشد.

۳. نبود پارامترهای غیرقابل پیش‌بینی

درخواست مربوطه نباید شامل پارامترهایی باشد که مهاجم نتواند مقدار آن‌ها را حدس بزند. به‌عنوان مثال، اگر تغییر رمز عبور نیاز به وارد کردن «رمز قبلی» داشته باشد، حمله با شکست مواجه می‌شود. در چنین شرایطی، پیش‌بینی و اجرای موفق درخواست مخرب برای مهاجم بسیار دشوار خواهد بود.

با برقرار بودن این سه شرط، مهاجم می‌تواند بدون آگاهی کاربر، عملی خطرناک را از طرف او انجام دهد؛ آن‌هم با ظاهری کاملاً قانونی برای سرور.

چگونه یک حمله CSRF ساخته می‌شود؟

ساخت دستی حمله‌ی CSRF با استفاده از کد HTML ممکن است در شرایطی دشوار و زمان‌بر باشد؛ به‌ویژه زمانی که درخواست مورد نظر شامل پارامترهای زیاد یا ساختار پیچیده‌ای باشد. در چنین مواردی، بهترین و سریع‌ترین روش برای ساخت نمونه‌ی عملی (PoC) این نوع حمله، استفاده از ابزار CSRF PoC Generator در نرم‌افزار Burp Suite Professional است.

مراحل ساخت حمله CSRF در Burp Suite به‌صورت زیر است:

  1. ابتدا درخواست موردنظر را در یکی از بخش‌های Burp Suite انتخاب کنید.

  2. بر روی آن راست‌کلیک کرده و از منوی زمینه‌ای، گزینه‌ی Engagement tools / Generate CSRF PoC را انتخاب کنید.

  3. در این مرحله، Burp Suite یک کد HTML تولید می‌کند که می‌تواند همان درخواست را بدون کوکی‌ها ارسال کند (کوکی‌ها به‌صورت خودکار توسط مرورگر قربانی اضافه می‌شوند).

  4. در صورت نیاز، می‌توانید تنظیمات ابزار تولید CSRF را تغییر دهید تا متناسب با ساختار خاص درخواست، خروجی دقیق‌تری دریافت کنید.

  5. در نهایت، کد HTML ایجاد شده را در یک صفحه‌ی وب قرار دهید، آن را در مرورگری که وارد حساب کاربری سایت آسیب‌پذیر شده است اجرا کنید و بررسی نمایید که آیا عمل مورد نظر با موفقیت انجام می‌شود یا خیر.

استفاده از این روش، ساخت حمله‌های هدفمند CSRF را بسیار سریع‌تر و دقیق‌تر می‌کند.

روش‌های ارسال حمله CSRF چگونه است؟

ارسال یا تحویل یک حمله CSRF معمولاً به همان شیوه‌ای انجام می‌شود که در حملات XSS بازتابی (Reflected XSS) نیز رایج است. در اغلب موارد، مهاجم کد HTML مخرب را در یک وب‌سایت تحت کنترل خود قرار می‌دهد و سپس تلاش می‌کند تا قربانی را به بازدید از آن وب‌سایت ترغیب کند. این کار ممکن است از طریق ارسال یک لینک در قالب ایمیل، پیام شبکه‌های اجتماعی یا حتی پیام متنی صورت گیرد.

در برخی موارد خاص، اگر کد مخرب در یک وب‌سایت معتبر و پرمخاطب (مانند بخش نظرات کاربران) قرار گیرد، مهاجم حتی نیازی به دعوت مستقیم کاربر ندارد و صرفاً منتظر بازدید او از آن صفحه می‌ماند.

نکته قابل توجه این است که برخی حملات ساده CSRF با متد GET اجرا می‌شوند و می‌توانند به‌صورت کاملاً مستقل و تنها با یک URL ساخته شوند. در چنین حالتی، مهاجم حتی نیازی به داشتن سایت جداگانه ندارد و می‌تواند مستقیماً یک لینک مخرب در دامنه‌ی آسیب‌پذیر را برای کاربر ارسال کند.

برای مثال، اگر درخواست تغییر ایمیل در یک سایت از طریق متد GET قابل انجام باشد، کد حمله می‌تواند به‌سادگی به‌شکل زیر باشد:

<img src="https://vulnerable-website.com/email/change?email=pwned@evil-user.net">

در این سناریو، تنها کافی است که کاربر وارد صفحه‌ای شود که این کد در آن قرار دارد تا عملیات ناخواسته به‌طور خودکار اجرا شود.

جمع‌بندی

حمله CSRF چیست و چرا باید آن را جدی گرفت؟ در این مقاله، از تعریف و روش اجرای این حمله شروع کردیم، سپس ابزارهای ساخت و نحوه‌ی تحویل آن را بررسی کردیم، راهکارهای دفاعی را توضیح دادیم و در پایان آن را با XSS مقایسه نمودیم. یادگیری این مفاهیم، گامی مهم برای حفظ امنیت کاربران و برنامه‌های وب است.

 

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

مطالب مرتبط

Hyper-v چیست؟

Hyper-V پلتفرم مجازی‌سازی مایکروسافت است که اجرای هم‌زمان چند سیستم‌عامل روی یک سرور را ممکن می‌سازد. در این مقاله به معرفی، عملکرد و مزایای آن می‌پردازیم.

23 فروردین 1404

کرون جاب (Cron Job) چیست؟

کرون جاب ابزاری در لینوکس برای زمان‌بندی خودکار وظایف است که با کمک آن می‌توان کارهای تکراری مانند بکاپ، بروزرسانی، مانیتورینگ و پاک‌سازی را بدون دخالت دستی انجام داد. در این مقاله آبالون به بررسی کرون جاب می‌پردازیم.

18 فروردین 1404

Json چیست؛ کاربردها + ویژگی‌ها و محدودیت‌ها

JSON چیست و چه کاربردی دارد؟ در این مقاله بررسی می‌کنیم فایل JSON چیست، جیسون چیست، چه ویژگی‌هایی دارد، چه محدودیت‌هایی دارد و چه تفاوت‌هایی با XML و HTML دارد. اگر به‌دنبال شناخت کامل این فرمت پرکاربرد در دنیای وب هستید، این مطلب را از دست ندهید.

16 فروردین 1404

دریافت سرویس تست رایگان

ارتباط با ابر زَس

تلفن:        91078149 –  021

ایمیل:       Sales@XaaS.ir