در این Write up مربوط به آسیبپذیری منطقی، به توضیح یک آسیب پذیری در یک هدف خصوصی می پردازیم که منجر به یک حمله DoS یا انکار سرویس می شود.
در این رایت آپ به نوعی از مساله Redirection Loop خواهم پرداخت که تست نفوذگر در یکی از برنامههای خصوصی با آن مواجه شده است که منجر به انکار سرویس یا همان DoS سرور خواهد شد، زیرا در ۱ الی ۲ دقیقه، امکان ارسال بیش از ۷۰۰ تا ۸۰۰ درخواست HTTP به طور خودکار به سرور وجود دارد.
در واقع اگر یک Redirection Loop واقعی رخ داده باشد، پس از چند بار تغییر مسیر، مرورگر پیام خطایی مانند شکل زیر را نمایش می دهد:
در این هدف به جای تغییر مسیر 3xx، مجموعه از درخواستهای GET و POST به طور مکرر به سرور ارسال شدند. بنابراین، مرورگر آن را به عنوان یک Redirection Loop نشان نداد زیرا در واقع یک Redirection Loop نیست.
تست نفوذگر این مساله را در حین آزمایش مربوط به Bypass احراز هویت دو مرحله ای یا 2FA می بیند.
هدف دارای ویژگی 2FA است.
تست نفوذگر آن را فعال نموده و شروع به Bypass آن می نماید.
در ابتدا پس از ورود ایمیل و کلمه عبور، یک درخواست POST به سرور ارسال میشود. تست نفوذگر این درخواست را کپچر نموده و پاسخ آن را بررسی می کند. پاسخ در تصویر زیر نشانداده شدهاست:
همانطور که در پاسخ قابل مشاهده میباشد، تغییر مسیر از نوع 303 به آدرس /index.php/login/twofa انجام میشود و اینجا جایی است که از کاربر 4 رقم مربوط به عملیات 2FA ارسال شده به ایمیل یا Authenticator را درخواست میکند.
در این بخش، تست نفوذگر با خود فکر میکند تا بررسی کند، در صورت عدم فعال شدن 2FA، کاربر به کجا هدایت خواهد شد. بنابراین، وارد حساب خود شده و سعی میکند تا قابلیت 2FA را غیرفعال کند، اما با کمال تعجب، با خطای زیر روبرو میشود:
“Once you enable 2FA it is not possible to disable it”
بنابراین، وی یک حساب آزمایشی دیگر ایجاد میکند و این بار 2FA را فعال نمیکند. سپس سعی میکند تا با استفاده از ایمیل و رمز عبور وارد سیستم شود. همانطور که انتظار میرود یک درخواست POST ایجاد شدهاست. وی این درخواست را کپچر نموده و پاسخ آن را بررسی میکند. پاسخ شبیه به پاسخ نشانداده شده در تصویر زیر است:
همانطور که میتوانید در پاسخ ] بدون فعالسازی2FA [ ببینید، تغییر مسیر به /app/profile/details انجام میشود.
این بار مسیری که کاربر به سمت آن هدایت شده است با مسیر فعال شده 2FA متفاوت است.
آسیب پذیری منطقی در Workspace فیسبوک
به منظور بررسی این موضوع تست نفوذگر با 2FA وارد حساب خود شده و پاسخ درخواست POST مورد استفاده برای احراز هویت کاربر را ثبت نموده (با استفاده از ابزار Burp suite) و بخش Redirection را از redacted.com/index.php/login/twofa به redacted.com/app/profile/details تغییر داده و درخواست را عبور میدهد.
وی به منظور تایید مسئله از یک مرورگر دیگر نیز استفاده میکند تا از وجود آسیبپذیری اطمینان حاصل نماید.
سپس هنگامی که تست نفوذگر به صفحه ارسال درخواستها در Burp Suite مراجعه مینماید، مشاهده میکند که هزاران درخواست GET و POST به صورت مدام در حال ارسال میباشد که میتوانید آن را در تصویر زیر مشاهده نمایید:
این درخواستها تا هنگامی که تست نفوذگر تب مربوط به تست خود در مرورگر را نبندد، ادامه خواهد داشت.
بنابراین، اگر وی تب مذکور را به مدت چند دقیقه باز نگه دارد، سرور تحت تاثیر قرار داده شده که میتواند منجر به یک حمله DoS شود.
چه چیزی در اینجا اتفاق افتاد؟
طبق منطق اجرا شده، کاربر با 2FA فعال شده، ابتدا باید کد 2FA را وارد کند و سپس به پروفایل کاربری هدایت خواهد شد.
در اینجا، تست نفوذگر از فاز تایید 2FA صرف نظر نموده و مستقیما به درخواست نهایی پرش میکند. بنابراین، سرور به طور مداوم در حال تلاش برای خروج کاربر از جلسهای است که ایجاد نشده است.
منبع:
inakcf.medium.com/one-click-dos-via-response-manipulation-2f08da421104