• صفحه اصلی
  • تامین امنیت سایت
  • آموزش جامع
    • کلوپ امنیت 1
    • کلوپ امنیت 2
    • کلوپ امنیت پیشرفته
    • دوره تست نفوذ api
    • دوره منطق سیاه : نفوذ به وب
    • دوره متخصص Idor
    • دوره متخصص pentest
    • دوره جامع osint
    • دوره امنیت وردپرس
    • دوره منتورینگ vip با بهروز منصوری
  • رایتاپخونه پلی برای کسب تجربه
  • غیر رسمی
  • بلاگ
  • ارتباط با ما
 

ورود

رمز عبور را فراموش کرده اید؟

هنوز عضو نشده اید؟ عضویت در سایت
  • صفحه اصلی
  • تامین امنیت سایت
  • آموزش جامع
    • کلوپ امنیت 1
    • کلوپ امنیت 2
    • کلوپ امنیت پیشرفته
    • دوره تست نفوذ api
    • دوره منطق سیاه : نفوذ به وب
    • دوره متخصص Idor
    • دوره متخصص pentest
    • دوره جامع osint
    • دوره امنیت وردپرس
    • دوره منتورینگ vip با بهروز منصوری
  • رایتاپخونه پلی برای کسب تجربه
  • غیر رسمی
  • بلاگ
  • ارتباط با ما
0

هنوز هیچ محصولی خریداری نکرده اید.

وبلاگ

مرزبان بلاگ مقالات آموزشی باگ‌های پنهان دنیای باگ بانتی بخش سوم

باگ‌های پنهان دنیای باگ بانتی بخش سوم

مقالات آموزشی ، وبلاگ
ارسال شده توسط بهروز منصوری
1405/03/23
50 بازدید

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

باگ‌های OAuth خطرناک‌اند چون امن به نظر می‌رسند

HTTPS وجود دارد.

ورود با Google یا GitHub وجود دارد.

توکن‌ها، پارامتر State و Redirectها هم وجود دارند.

اما با این حال، تنها یک اشتباه منطقی می‌تواند OAuth را به یک تصاحب حساب (Account Takeover) خاموش تبدیل کند؛ جایی که:

  • قربانی به‌صورت کاملاً عادی وارد حساب خود می‌شود.
  • هیچ چیز «هک‌شده» به نظر نمی‌رسد.
  • اما مهاجم همچنان به حساب دسترسی پیدا می‌کند.

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

این حمله از اعتماد اشتباه میان هویت (Identity) و نشست کاربر (Session) سوءاستفاده می‌کند.

 

🧠 OAuth Misbinding چیست؟

OAuth Misbinding زمانی رخ می‌دهد که:

  • یک Authorization Code یا Token مربوط به OAuth
  • به‌درستی به نشست کاربری که فرایند ورود را آغاز کرده متصل (Bind) نشده باشد
  • و برنامه آن را برای کاربر دیگری بپذیرد.

به زبان ساده:

  • برنامه به ارائه‌دهنده OAuth اعتماد می‌کند.
  • اما فراموش می‌کند بررسی کند که این توکن واقعاً متعلق به چه کاربری است.

و همین نقطه، منشأ آسیب‌پذیری است.

 

🎯 چرا این باگ بسیار خطرناک است؟

OAuth Misbinding می‌تواند منجر به موارد زیر شود:

  • تصاحب کامل حساب (Full Account Takeover)
  • جابه‌جایی نشست میان کاربران (Cross-User Session Swapping)
  • نشت توکن‌ها (Token Leakage)
  • دسترسی پایدار از طریق OAuth Refresh Token

و بدترین بخش ماجرا؟

 در بسیاری از موارد، خود قربانی ناخواسته فرایند ورود را تکمیل می‌کند.

 نه بدافزاری وجود دارد، نه فیشینگ و نه هیچ هشدار امنیتی.

به همین دلیل این آسیب‌پذیری معمولاً در سطح P1 دسته‌بندی می‌شود.

 

سناریوی واقعی سوءاستفاده (PoC Mindset)

باگ‌های پنهان دنیای باگ بانتی بخش سوم

 

باگ‌های پنهان دنیای باگ بانتی بخش سوم

برنامه تصور می‌کند: «ارائه‌دهنده OAuth این ورود را تأیید کرده است.»

اما هرگز این سؤال را نمی‌پرسد: «این تأیید برای کدام کاربر صادر شده است؟»

 

🧪 چگونه OAuth Misbinding را پیدا کنیم؟ (گام‌به‌گام)

مرحله ۱: نقاط ورود OAuth را شناسایی کنید

به دنبال گزینه‌هایی مانند موارد زیر باشید:

  • Login with Google
  • Continue with GitHub
  • Sign in using SSO

اندپوینت‌های رایج:

/auth/google
/oauth/login
/login/oauth
/auth/callback

 

مرحله ۲: جریان OAuth را رهگیری کنید

با استفاده از Burp Suite موارد زیر را رهگیری کنید:

  • درخواست Authorization در OAuth
  • ریدایرکت به ارائه‌دهنده OAuth
  • درخواست Callback

نمونه Callback:

/callback?code=AUTH_CODE&state=STATE_VALUE

مقادیر زیر را ذخیره کنید:

  • code
  • state

 

مرحله ۳: کد OAuth مهاجم را به دست آورید

  1. با حساب مهاجم وارد شوید.
  2. فرایند OAuth را کامل کنید.
  3. مقدار code=ATTACKER_CODE را استخراج کنید.
  4. اجازه ندهید کد منقضی شود.

این کد، ابزار حمله شماست.

 

مرحله ۴: کد را برای کاربر دیگری بازپخش (Replay) کنید

اکنون:

  • از حساب خارج شوید
  • یا مرورگر دیگری باز کنید
  • یا با حساب قربانی وارد شوید

سپس درخواست زیر را ارسال کنید:

/callback?code=ATTACKER_CODE&state=VICTIM_STATE

🚨 اگر نشست قربانی این درخواست را بپذیرد، آسیب‌پذیری OAuth Misbinding تأیید شده است.

 

🧰 ابزارهایی که واقعاً نیاز دارید

🔧 ابزارهای اصلی

  • Burp Suite
  • Proxy
  • Repeater
  • مرورگر با چند پروفایل
  • curl (اختیاری)

برای کشف این آسیب‌پذیری به اتوماسیون نیاز ندارید.

درک صحیح منطق برنامه مهم‌تر از ابزارهاست.

 

🧪 Payloadها و تغییراتی که اهمیت دارند

1️⃣ تست استفاده مجدد از Code

/callback?code=SAME_CODE&state=NEW_STATE

Authorization Code باید:

  • یک‌بارمصرف باشد
  • به کاربر وابسته باشد
  • به نشست کاربر متصل باشد

 

2️⃣ جابه‌جایی State

/callback?code=ATTACKER_CODE&state=RANDOM

اگر ورود همچنان موفق باشد، اتصال CSRF به‌درستی پیاده‌سازی نشده است.

3️⃣ حذف کامل State

/callback?code=ATTACKER_CODE

اگر درخواست پذیرفته شود، آسیب‌پذیری در سطح بحرانی (Critical) قرار دارد.

4️⃣ تست بین دستگاهی (Cross-Device)

  • OAuth را روی موبایل آغاز کنید.
  • آن را روی دسکتاپ تکمیل کنید.

اگر بدون هیچ بررسی اضافی پذیرفته شود، احتمالاً مکانیزم اتصال نشست ضعیف است.

 

🚩 نشانه‌هایی که نشان می‌دهد به یک باگ واقعی نزدیک شده‌اید

به موارد زیر توجه کنید:

  • ورود حتی پس از Logout همچنان کار می‌کند.
  • OAuth بدون کوکی معتبر کار می‌کند.
  • یک Code چند بار قابل استفاده است.
  • پارامتر State در سمت سرور اعتبارسنجی نمی‌شود.
  • نشست کاربر پیش از تکمیل OAuth ایجاد می‌شود.

همه این موارد نشانه‌های هشداردهنده مهمی هستند.

🧨 چگونه این آسیب‌پذیری به P1 تبدیل می‌شود؟

OAuth Misbinding زمانی بسیار خطرناک می‌شود که:

  • OAuth روش اصلی ورود کاربران باشد.
  • توکن‌های OAuth برای دسترسی به API استفاده شوند.
  • Refresh Tokenها به‌صورت ناامن ذخیره شوند.
  • برنامه به‌صورت خودکار حساب‌های OAuth را لینک کند.

در این شرایط ممکن است پیامدهای زیر رخ دهد:

  • دسترسی پایدار و طولانی‌مدت
  • تصاحب کامل حساب
  • جعل هویت کاربران دیگر

 

📝 نحوه گزارش آسیب‌پذیری

عنوان گزارش

OAuth Misbinding Allows Cross-User Account Takeover

تأثیر (Impact)

مهاجم می‌تواند با استفاده مجدد از یک OAuth Authorization Code معتبر، قربانی را به حسابی که تحت کنترل مهاجم است وارد کند.

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

اهمیت آسیب‌پذیری

  • مدل اعتماد SSO را نقض می‌کند.
  • تمام کاربران OAuth را تحت تأثیر قرار می‌دهد.
  • پس از کلیک اولیه، نیاز به تعامل بیشتری از سوی کاربر ندارد.

 

🧠 چرا بسیاری از باگ‌هانترها این آسیب‌پذیری را از دست می‌دهند؟

زیرا:

  • OAuth در ظاهر بسیار امن به نظر می‌رسد.
  • افراد بیش از حد به ارائه‌دهندگان OAuth اعتماد می‌کنند.
  • جریان‌های OAuth پیچیده و گیج‌کننده هستند.
  • بسیاری از شکارچیان باگ پس از مشاهده ورود موفق، بررسی را متوقف می‌کنند.

در حالی که آسیب‌پذیری‌های OAuth معمولاً در منطق برنامه نهفته‌اند، نه در خود اندپوینت‌ها.

🚀 بعد از خواندن این مطلب چه کاری انجام دهید؟

دفعه بعد که با OAuth مواجه شدید:

  • فقط CSRF را تست نکنید.
  • فقط Redirectها را بررسی نکنید.
  • حتماً اتصال هویت (Identity Binding) را آزمایش کنید.

زیرا معمولاً آسیب‌پذیری‌های ارزشمند دقیقاً در همین بخش پنهان شده‌اند.

🐾 قسمت بعدی این مجموعه

در مطلب بعدی بررسی خواهیم کرد:

 Race Conditions in Business Logic

اینکه چگونه ارسال هم‌زمان درخواست‌ها می‌تواند منطق مالی، اعتبارها، محدودیت‌ها و مکانیزم‌های کنترلی را دور بزند؛ همراه با نمونه‌های عملی و PoCهای واقعی.

 

با من همراه باشید

برچسب ها: account takeoverapiapi hackingCriticalcsrfOAuth Misbinding Vulnerabilityآسیب‌پذیریآموزش امنیتآموزش هکباگ بانتیبهروز منصوریتست نفوذتوکنفیشینگهک سایتهک و امنیت

قدیمی تر باگ‌های پنهان دنیای باگ بانتی بخش دوم
جدیدتر باگ‌های پنهان دنیای باگ بانتی بخش چهارم

محصولات فروش ویژه
  • چطور با گزارش خوب در سایت‌های داخلی کسب درآمد کنیم؟
    کسب درآمد از طریق گزارش باگ در سایت‌های داخلی
  • دوره درک عمیق آسیب‌پذیری
    درک عمیق آسیب‌پذیری
  • مینی دوره مهندسی اجتماعی
    مینی دوره مهندسی اجتماعی
  • گزارش نویسی حرفه ای در باگ هانتینگ
    گزارش نویسی حرفه‌ای در Bug Hunting
دسته‌ها
  • رایتاپ
  • غیر رسمی
  • مقالات آموزشی
  • وبلاگ
  • ویدیوهای آموزشی
درباره ما

هدف از راه‌اندازی این سایت تلاش در جهت ورود شما به بازار کار است.افراد زیادی را میشناسیم که مشغول کارهای کارمندی هستند، شاید حتی پول نسبتا خوبی هم به دست میاورند ولی از کارشان لذت نمیبرند.

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

دسترسی سریع
  • دوره منتورینگ vip بهروز منصوری
  • کلوپ امنیت 1
  • کلوپ امنیت 2
  • کلوپ امنیت پیشرفته
  • دوره تست نفوذ api
  • دوره جامع اوسینت
  • دوره امنیت وردپرس
  • دوره متخصص pentest
  • رایتاپخونه
  • ارتباط با ما
  • تماس: 09126216410
  • ایمیل: mr.mansoori@yahoo.com

تمامی حقوق برای مرزبان محفوظ می باشد.

طراحی توسط مرزبان

فرم درخواست مشاوره

جستجو

جستجو با زدن Enter و بستن با زدن ESC