سوءاستفاده از شرایط رقابتی در OAuth برای ربودن توکن — باگ بانتی ۸۵۰۰ دلاری (سطح P1)

جمع کردن
X
 
  • زمان
  • نمایش
پاک کردن همه
پست‌های جدید
  • zerod4y
    مدیر

    • Feb 2021
    • 1401

    #1

    سوءاستفاده از شرایط رقابتی در OAuth برای ربودن توکن — باگ بانتی ۸۵۰۰ دلاری (سطح P1)

    یک پژوهشگر امنیتی موفق شد با کشف یک race condition در جریان احراز هویت OAuth 2.0، توکن‌های دسترسی کاربران را ربوده و دسترسی کامل به حساب‌هایشان کسب کند. این باگ در یک پلتفرم مدیریت کسب‌وکار ابری که توسط شرکت‌های Fortune 500 نیز استفاده می‌شود، یافت شده است و باگ بانتی ۸۵۰۰ دلاری را به همراه داشت.
    🔍 پیش‌زمینه فنی


    سیستم ورود از طریق OAuth 2.0 و با استفاده از Authorization Code Grant + PKCE طراحی شده بود. این یعنی:
    • احراز هویت با SSO
    • لیست سفید برای Redirect URIها
    • Scopeهای محدودشده
    • Refresh Token با عمر کوتاه

    در ظاهر همه چیز امن به نظر می‌رسید... اما یک مشکل مهم وجود داشت.
    🚨 کشف شرایط رقابتی (Race Condition)


    پژوهشگر متوجه شد که اگر دو جریان احراز هویت هم‌زمان (در فاصله میلی‌ثانیه‌ای) برای یک کاربر راه‌اندازی شود، سرور به هر دو جریان، کد مجوز معتبر (authorization code) اختصاص می‌دهد. ✳️ سناریوی حمله:
    1. مهاجم کاربر را وادار به ورود به سیستم می‌کند (مثلاً از طریق یک لینک OAuth).
    2. در همان لحظه، مهاجم درخواست موازی دیگری برای احراز هویت ارسال می‌کند.
    3. هر دو جریان کد مجوز دریافت می‌کنند.
    4. مهاجم قبل از کاربر، کد مجوز خود را تبدیل به توکن دسترسی می‌کند.
    5. از آنجایی که سرور از اولین Redeem کننده کد مجوز توکن را قبول می‌کند، توکن مهاجم معتبر خواهد بود.
    6. کاربر هیچ نشانه‌ای از حمله نمی‌بیند، چون جریان احراز هویت او نیز به درستی ادامه می‌یابد.

    💥 نتیجه: ربودن کامل حساب


    مهاجم با استفاده از این توکن‌ها می‌تواند:
    • داده‌های حساس بخواند یا تغییر دهد
    • به تنظیمات حساب دسترسی داشته باشد
    • عملیات‌های تجاری را انجام دهد

    LINK
    Life is short, break the law
  • covertbrother
    تازه وارد
    • Nov 2025
    • 1

    #2
    Most games, and most of life, treat mistakes as Slice Master something to escape. They punish, they scold, they remind you of what you’ve lost.

    نظر

    • Madisonn
      تازه وارد
      • Feb 2026
      • 1

      #3
      I once wrestled with a client's API integration, where seemingly simple data transfers became a labyrinth of authentication errors, feeling much like a particularly tricky Connections Game. Every attempted solution led to another dead end, highlighting the subtle vulnerabilities in complex systems.

      نظر

      در حال کار...