Cross-Site Forgery Request (CSRF) حمله ای است که در OWASP Top 10 مشخص شده است که به موجب آن یک وب سایت مخرب درخواستی را برای یک برنامه وب ارسال می کند که کاربر قبلا آن را از یک وب سایت دیگر تأیید کرده است. به این ترتیب مهاجم میتواند از طریق مرورگر تأیید اعتبار قربانی در برنامه کاربردی وب مورد استفاده قرار گیرد. اهداف شامل برنامه های کاربردی وب مانند رسانه های اجتماعی، مشتریان ایمیل در مرورگر، بانکداری آنلاین و اینترفیس های وب برای دستگاه های شبکه است.
حمله متقابل در متقاضی عبور، مهاجم سوء استفاده از چگونگی تأیید هویت وب برنامه هدف را مورد سوء استفاده قرار می دهد. برای استفاده از CSRF، قربانی باید در برابر (ورود به) سایت هدف تأیید شود. به عنوان مثال، بگوئید examplebank.com دارای بانکداری آنلاین است که برای CSRF آسیب پذیر است. اگر من یک صفحه از حمله CSRF را در examplebank.com ببینم اما در حال حاضر وارد نشده ام، هیچ اتفاقی رخ نمی دهد. با این حال، اگر به سیستم وارد شدم، درخواستها در حمله اعدام خواهند شد، به شرط اینکه اقداماتی بود که من قصد داشتم انجام دهم.
بیایید نگاه کنیم چگونه حمله ای که در بالا توضیح داده می شود در جزئیات کمی کار می کند. اولا فرض کنیم که من به حساب من در examplebank.com وارد شده ام، که به ویژگی های استاندارد بانکی آنلاین، از جمله انتقال وجوه به حساب دیگر، اجازه می دهد.
حالا بگید من به سایت somemalicioussite.com مراجعه میکنم این فقط اتفاق می افتد که این سایت در حال تلاش برای حمله به افرادی که بانک با examplebank.com را دارند و یک حمله CSRF را روی سایت خود راه اندازی کرده است. این حمله 1،500.00 دلار به حساب شماره 123456789 انتقال خواهد داد. جایی در سایت somemalicioussite.com، مهاجمان این خط کد را اضافه کرده اند:
<iframe src = "//www.veracode.com/٪3Ca٪20href٪3D" http://examplebank.com/app/transferFunds؟amount=1500&destinationAccount=123456789 "> http://examplebank.com/app/transferFunds ؟ مقدار = 1500 و destinationAccount = ... ">
پس از بارگذاری iframe، مرورگر من این درخواست را به examplebank.com ارسال می کند، که مرورگر من قبلا به عنوان من وارد شده است. درخواست پردازش می شود و 1،500.00 دلار به حساب 123456789 ارسال می شود.
یکی دیگر از تقاضای جعل تقاطع سایت
من فقط یک روتر بیسیم خانگی جدید خریدم مانند دیگر روترهای WiFi، از طریق یک رابط وب پیکربندی شده است. روتر به من با یک آدرس IP داخلی 192.168.1.1 فرستاده شد. من مشکل تنظیم پیکربندی روتر را دارم، و خوشبختانه افرادی که در somemalicioussite.com هستند، یک راهنمای را ارائه کرده اند که به من نشان می دهد که دقیقا چه دکمه هایی روی اینترفیس روتر کلیک می کنید تا همه چیز را به طور ایمن تنظیم کنید. مهاجمان همچنین یک پروکسی سرور را در 123.45.67.89 نصب کرده اند که تمام ترافیک را که از طریق آن عبور می کند وارد می کند و چیزهایی مانند رمزهای عبور و نشانه ها را جستجو می کند.
همانطور که از طریق راهنمای تنظیمات کلیک کردم، تصویر 1 × 1 پیکسل را که بارگیری نشد، از دست دادم:
<img src = "http://192.168.1.1/admin/config/outsideInterface؟nexthop=123.45.67.89" alt = "pwned" height = "1" width = "1" />
مهاجمان می دانستند وقتی که من خواندن آموزش خود را، من را به رابط روتر وارد شوید. بنابراین آنها حمله CSRF را در آموزش ایجاد کردند. با استفاده از این درخواست، روتر من می تواند دوباره تنظیم شود تا ترافیک من به سرور پروکسی من هدایت شود، جایی که می تواند تمام انواع بدی را با آن انجام دهد.
جلوگیری از آسیب پذیری درخواست تقلب در Cross Site (CSRF)
رایج ترین روش برای جلوگیری از حمله متقابل سایت Cross-Site Forgery (CSRF) این است که برچسب های CSRF را برای هر درخواست اضافه کنید و آنها را با جلسه کاربر مرتبط کنید. چنین نشانه ها باید حداقل در هر جلسه کاربر منحصر به فرد باشد، اما می تواند برای هر درخواست منحصر به فرد باشد. با استفاده از یک علامت چالش با هر درخواست، توسعه دهنده می تواند اطمینان حاصل کند که درخواست معتبر است و از یک منبع غیر از کاربر نمی آید.
پیدا کردن و اصلاح آسیب پذیری درخواست تقلب تقسیم سایت (CSRF)
ساده ترین راه برای بررسی اینکه آیا یک برنامه آسیب پذیر است، این است که ببینیم آیا هر لینک و فرم یک نشانه غیر قابل پیش بینی برای هر کاربر دارد. مهاجمین بدون چنین نشانه ای غیرقابل پیش بینی می توانند درخواست های مخرب ایجاد کنند. تمرکز بر پیوندها و اشکال است که به توابع تغییر حالت منجر می شود، چرا که آنها مهمترین اهداف CSRF هستند.Send feedbackHistorySavedCommunity