آسیب پذیری Open Redirect چیست؟

آسیب پذیری
مقالات نرم افزار های تحت وب

آسیب پذیری Open Redirect چیست؟

آسیب پذیری Redirectچیست و چگونه می‌تواند به یک آسیب پذیری تبدیل شود؟ به واسطه وجود Open Redirect چه اتفاقاتی ممکن است برای کاربران یک برنامه رخ بدهد؟ با ما همراه باشید تا در ادامه این مقاله از تدریس24 با آسیب پذیری Open Redirect آشنا شویم.

 

آسیب پذیری یا باگ Open Redirect چیست؟

 

این آسیب پذیری، یکی از آسیب پذیری های تحت وب می‌باشد که شاید بعضاً، از نظر صاحبان وب‌سایت، تهدید بزرگی به شمار نرود، اما وجود آن میتواند موجب افزایش سطح تخریب، در حملات دیگر بشود. در این نوشتار، به شرح کامل آسیب پذیری Open Redirect، سناریو های حمله، تشخیص و امن سازی برنامه برای پیشگیری از این آسیب پذیری خواهیم پرداخت.

اما پیش از پرداختن به آسیب پذیری Open Redirect لازم است تا با عمل Redirection  یا تغییر مسیر، آشنا باشیم. پس مختصرا به شرح عملکرد تغییر مسیر در برنامه می‌پردازیم.

این عملکرد زمانی رخ می‌دهد که یک وب‌‌سایت، کاربران خود را به یک وب‌سایت دیگر منتقل می کند. به این عمل،  Redirection گفته و معنی فارسی آن به صورت “تغییر مسیر” تلفظ می شود؛ اما در گفتار عامیانه ، بیشتر با همان واژه ریدایرکشن به این عملکرد اشاره می‌شود.

استفاده از این عملکرد، دلایل مختلفی می تواند داشته باشد. مثلا:

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

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

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

کاربرد این اسیب پذیری چیست ؟ اسیب پذیری Open Redirect برای در بیشتر مواقع در حملات فیشینگ استفاده میشود اکثر کاربر ها با کلیک بر روی یک لینک که ادرس ان مشابه سایت اصلی است دیگر ادامه ادرس را نمیخوانند یا ادرس وارد شده را بعد از باز شدن نگاه نمیکنند و همین موضوع کوچک اما مهم میتوانید باعث به خطر افتادن اطلاعات ان ها شود.

 در واقع ما با پیدا کردن این حفره امنیتی در وبسایت های مهم میتوانیم حملات فیشینگ با نتیجه مطلوبی انجام دهیم از وبسایت های بزرگی از جمله گوگل ، فیسبوک و … این اسیب پذیری کشف شده است و میتوان گفت یکی از رایج ترین حفره های امنیتی وب اپلیکیشن ها است.

آسیب پذیری

 

آناتومی حمله Open Redirection

 

  1. 1. می خواهید پسورد استاد عزیز تان را به دست بیاورید و نمره مردودی خود را به نمره قابل قبولی تغییر دهید. 😉
  2. 2. ایمیلی به استاد خود می زنید و در این ایمیل از او در مورد یکی از مطالب موجود در سایتِ درس سوال می پرسید. در انتها لینکی را از این مطلب هم قرار می دهید تا استاد بیچاره بر روی لینک کلیک کند. اما این لینک در واقع لینک مطلب نیست، صرفا لینکی است که استاد را وادار به انجام لاگین می کند. این لینک می تواند به صورت زیر باشد:
  3. 3. استاد شما به صفحه لاگین دانشگاه هدایت می شود و نام کاربری و رمز خود را وارد می کند ولی به محتوای ReturnUrl دقت نمی کند. پس از انجام لاگین موفق، چون سایت دانشگاه هیچ گونه “اعتبارسنجی” بر روی مقدار ReturnUrl ندارد، کاربر را به آدرس مخربcourses.ir هدایت می کند.
  4. 4. در این صفحه که توسط ما طراحی شده، همه چیز از لحاظ ظاهری دقیقا مطابق با همان صفحه لاگین دانشگاه است. بدین صورت بسیار بعید است که کسی به این صفحه شک کند. فقط در این صفحه پیامی به کاربر داده شده است که “شما نام کاربری و رمز عبور خود را اشتباه وارد کرده اید”.
  5. استاد بیچاره با دیدن این صفحه مجددا نام کاربری و رمز عبور خود را وارد می کند ولی خبر ندارد که این بار همه چی در سایت شما ذخیره خواهد شد. پس از دریافت این اطلاعات از استاد، حالا شما مرورگر را به سایت اصلی دانشگاه Redirect می کنید و چون قبلا استاد در آنجا لاگین کرده، به مطالب دسترسی خواهد داشت و به چیزی شک نخواهد کرد.

نحوه تشخیص آسیب پذیری Open Redirect

ابزار هایی که عمل پروکسی برای مشاهده درخواست ها(Requests) و پاسخ‌ها (Responses) در مرورگر را انجام می‌دهند، برای آنالیز و کشف این باگ، به ما کمک می‌کنند. مانند:

  • Burp Suite
  • Fiddler
  • Post Man

به این صورت که پس از پروکسی یا تونل شدن ارتباطات مرورگر و وب‌سایت، توسط این ابزارها، درخواست هایی که موجب عمل ریدایرکت شده اند و پاسخ های آنها، کد وضعیتی مربوط به ریدایرکشن یعنی 301،302،307و… دارند را مورد ارزیابی قرار می‌دهیم.

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

 

سناریو حملات با استفاده از باگ Open Redirect

 

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

استفاده در حمله‌ی Phishing

این حمله، تقریبا در بین سناریو هایی که در مورد استفاده از این آسیب پذیری گفته شده‌اند، معروف تر است. این سناریو به این صورت است که نفوذگر، وب‌سایتی مشابه یک وب‌سایت دارای آسیب پذیری Open Redirect می‌سازد. سپس یک لینک ریدایرکت از سایت آسیب پذیر می‌سازد تا قربانی را به ‌وب‌سایت خود هدایت کند.

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

استفاده در حمله ی XSS

نفوذگر پس از کشف آسیب پذیری Open Redirect در یک وب‌سایت معتبر، کاربر قربانی را به بهانه‌ی خواندن یک مطلب در آن سایت، ترغیب به کلیک روی لینک مخرب فرستاده شده می‌کند. قربانی پس از کلیک روی لینک مخرب، وارد یک وب‌سایت دیگر با آسیب پذیری XSS می‌شود.

استفاده در حمله‌ی CSRF

نفوذگر آسیب پذیری CSRF را در یک وب‌سایت کشف می‌کند. سپس یک لینک مخرب از یک وب‌سایت دارای باگ Open Redirect می‌سازد و برای قربانی میفرستد. کاربر قربانی، با دیدن دامنه‌ی وب‌سایت معتبر، فریب می‌خورد و بر روی لینک کلیک می‌کند و یک درخواست جعلی از سمت مرورگر وی، به وب‌سایت دارای باگ CSRF ارسال می‌شود.

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

 

راه های پیشگیری از Open Redirect

 

  • برای اطمینان از اینکه برنامه شما در برابر این آسیب پذیری، ایمن باشد، نیاز است تا برنامه وب مورد نظرتان را با موارد زیر منطبق کنید.
  • اگر از عمل ریدایرکشن استفاده می‌کنید، از آدرس url مقصد، در پارامتر ورودی کاربر استفاده نکنید.
  • حتی الامکان از نام کوتاه، ID یا توکن ای برای مقصد ریدایرکت ها استفاده کنید، که در سمت سرور به آدرس مقصد منطبق شده باشد.
  • اگر نمی‌توانید از ورودی کاربر جلوگیری کنید، مطمئن شوید که مقادیری که از سمت کاربران وارد می‌شوند، معتبر، مرتبط با برنامه و در سطح دسترسی کاربر باشند.
  • ورودی های کاربر را با یک لیست از مقصد های مجاز برای ریدایرکت، اعتبار سنجی کنید. دقت کنید که این رویکرد باید بر اساس یک لیست مجاز(allow-list) باشد و نه یک بلاک لیست(block list).

دیدگاه خود را اینجا قرار دهید

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

اعضا

‫بروز رسانی

سمیرا مردانی's بروزسانی مشخصات انجام شد 1 سال, ماه 6 قبل

محمد جواد محمدی's بروزسانی مشخصات انجام شد 1 سال, ماه 6 قبل

مریم نوری's بروزسانی مشخصات انجام شد 1 سال, ماه 6 قبل

محمد امین طاهری's بروزسانی مشخصات انجام شد 1 سال, ماه 6 قبل

نگار حجتی's بروزسانی مشخصات انجام شد 1 سال, ماه 6 قبل

فیلدهای نمایش داده شده را انتخاب کنید. دیگران مخفی خواهند شد. برای تنظیم مجدد سفارش ، بکشید و رها کنید.
  • عکس
  • شناسه محصول
  • امتیاز
  • قیمت
  • در انبار
  • موجودی
  • افزودن به سبد خرید
  • توضیحات
  • محتوا
  • عرض
  • اندازه
  • تنظیمات بیشتر
  • ویژگی ها
  • ویژگی های سفارشی
  • زمینه های دلخواه
برای پنهان کردن نوار مقایسه ، بیرون را کلیک کنید
مقایسه
مقایسه ×
Let's Compare! Continue shopping