رایتاپ
Rate Limit Bypass writeup

این رایتاپ بر اساس سناریوهای دریافت شده از متخصصین امنیتی باگدشت با هدف اشتراک گذاری دانش امنیتی و تسریع در ایمن سازی ارایه شده است.

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

Rate limit، اقدام به محاسبه زمان بین هر درخواستی که متعلق به یک آدرس IP است می‌کند و همچنین تعداد درخواست‌های ارسال شده از یک آدرس IP در یک بازه زمانی معین را محاسبه می‌کند.

پس از بررسی‌های انجام شده مشخص گردید می‌توان در بخش پیگیری وضعیت، با استفاده از یکی از روش‌های دور زدن Rate Limit لحاظ شده، محدودیت تعداد درخواست‌های ارسالی را Bypass نمود. مهاجم با استفاده از اکسپلویت این آسیب‌پذیری، امکان دسترسی به وضعیت دیگر کاربران را از طریق پیاده‌سازی حملات Brute Force دارد.

مراحل بررسی:

1.    وارد بخش پیگیری سفارشات میشویم.

2.    کد پیگیری را بصورت رندوم وارد میکنیم.

3.    توسط ابزار Burp Suite ریکوئست ارسالی را دریافت میکنیم

4.    در صورتی که تعداد ریکوئست‌های ما بیش از حد مجاز باشد با ارور زیر مواجه می‌شویم

 "Too many attempts, Please try later!"

5.    برای Bypass این محدودیت تنها کافیست ورژن مرورگر خود را در هدر User Agent تغییر دهیم.

 User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36

6.    در نتیجه با استفاده از ماژول Intruder، امکان دور زدن این محدودیت وجود دارد.

 User-Agent: Mozilla/§5.0§ (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36