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

ورود

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

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

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

وبلاگ

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

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

وبلاگ
ارسال شده توسط بهروز منصوری
1405/05/19
31 بازدید

در مقاله باگ‌های پنهان دنیای باگ بانتی بخش ششم در مورد jwt algorithm confusion صحبت میکنیم که از دید افراد مخفی مانده.

«امضاشده است، پس حتماً امن است.»

دقیقاً همین چیزی است که مهاجمان روی آن حساب می‌کنند.

سردرگمی الگوریتم JWT (JWT Algorithm Confusion) درباره شکستن رمزنگاری نیست. بلکه درباره وادار کردن سرور به این است که توکن را به روش اشتباه اعتبارسنجی کند و با خوشحالی یک توکن جعلی را بپذیرد.

بدون بروت‌فورس. بدون لو رفتن کلیدهای محرمانه. فقط سوءاستفاده از اعتماد به پیکربندی.

 

🧠 سردرگمی الگوریتم JWT واقعاً چیست؟

JWT از سه بخش تشکیل شده است:

HEADER.PAYLOAD.SIGNATURE

هدر (Header) شامل فیلدی به نام alg است، مانند:

{
  "alg": "RS256",
  "typ": "JWT"
}

سردرگمی الگوریتم زمانی اتفاق می‌افتد که:

  • سرور به مقدار alg موجود در توکن اعتماد کند.
  • و از نوع کلید اشتباه برای اعتبارسنجی آن استفاده کند.

به زبان ساده:

سرور به مهاجم اجازه می‌دهد انتخاب کند که توکن چگونه اعتبارسنجی شود.

این همان باگ است.

 

🎯 چرا این باگ بحرانی است؟

JWT Algorithm Confusion می‌تواند منجر به موارد زیر شود:

  • دور زدن کامل احراز هویت
  • تصاحب حساب کاربری
  • جعل هویت مدیر (Admin)
  • دسترسی به API بدون داشتن اعتبارنامه

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

 توکن کاملاً معتبر به نظر می‌رسد.  اعتبارسنجی امضا همچنان «موفق» می‌شود.  لاگ‌ها یک احراز هویت کاملاً عادی را نشان می‌دهند.

به همین دلیل این باگ اغلب به عنوان P1 / P0 طبقه‌بندی می‌شود.

 

📹 روند واقعی اکسپلویت (طرز فکر PoC)

Application

   |

   | انتظار دریافت JWT امضاشده با RS256 را دارد

   | (جفت کلید عمومی / خصوصی)

   ↓

Attacker

   |

   | الگوریتم را از RS256 به HS256 تغییر می‌دهد

   | و از کلید عمومی به عنوان HMAC Secret استفاده می‌کند

   ↓

Server

   |

   | ❌ توکن را با منطق اشتباه اعتبارسنجی می‌کند

   ↓

💥 توکن پذیرفته می‌شود → مهاجم احراز هویت می‌شود

هیچ رمزنگاری‌ای شکسته نشده است. فقط از منطق سیستم سوءاستفاده شده است.

 

🧪 کجا باید به دنبال JWT Algorithm Confusion بگردید؟

این باگ معمولاً در جاهایی دیده می‌شود که:

  • JWT برای احراز هویت استفاده می‌شود.
  • اعتبارسنجی توکن در سمت سرور انجام می‌شود.
  • چندین الگوریتم پشتیبانی می‌شوند (یا پیکربندی اشتباه است).

 

اهداف پرریسک

  • APIها (Authorization: Bearer <JWT>)
  • بک‌اندهای موبایل
  • پنل‌های مدیریت
  • میکروسرویس‌ها
  • ابزارهای داخلی یا SSO

اگر JWT از هر چیز ارزشمندی محافظت می‌کند، آن را تست کنید.

 

🧪 چگونه JWT Algorithm Confusion را پیدا کنیم (مرحله‌به‌مرحله)

 

مرحله ۱: یک JWT معتبر را دریافت کنید.

به‌صورت عادی وارد حساب شوید و توکن را از یکی از این موارد بردارید:

  • هدر Authorization
  • کوکی‌ها
  • Local Storage

مثال:

Authorization: Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9...

 

مرحله ۲: JWT را Decode کنید.

از ابزارهای زیر استفاده کنید:

  • jwt.io (در حالت آفلاین)
  • jwt_tool

هدر را بررسی کنید:

{
  "alg": "RS256"
}

این نشان می‌دهد که سرور انتظار چه الگوریتمی را دارد.

 

مرحله ۳: کلید عمومی (Public Key) را به دست آورید. (مرحله حیاتی)

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

  • /.well-known/jwks.json
  • تنظیمات OpenID
  • گواهی‌های عمومی
  • پیکربندی‌های اپلیکیشن موبایل

مسیرهای رایج:

/.well-known/jwks.json
/.well-known/openid-configuration

اگر کلید عمومی در دسترس باشد پس به کشف باگ بسیار نزدیک شده‌اید.

 

مرحله ۴: الگوریتم را تغییر دهید. (تست اصلی)

هدر JWT را به این صورت تغییر دهید:

{
  "alg": "HS256"
}

حالا:

  • کلید عمومی را به عنوان HMAC Secret در نظر بگیرید.
  • توکن را با HS256 امضا کنید.

اگر سرور آن را بپذیرد → 💥 سردرگمی الگوریتم تأیید شده است.

🧰 ابزارهایی که واقعاً استفاده خواهید کرد

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

  • jwt_tool
  • CyberChef
  • Burp Suite (Repeater)
  • curl

نیازی به اسکنر یا فازینگ نیست.

درک مفهوم در اینجا از ابزارها مهم‌تر است.

 

🧪 دستورات و Payloadهای واقعی

استفاده از jwt_tool

python3 jwt_tool.py TOKEN \
  -X k \
  -pk public.pem \
  -I

یا به‌صورت دستی ایجاد کنید:

۱- هدر:

{"alg":"HS256","typ":"JWT"}

۲- payload (نقش یا شناسه کاربر را تغییر دهید):

{
  "user": "admin",
  "role": "admin"
}

۳- امضا با:

HMAC secret = PUBLIC KEY

🚩 نشانه‌های قوی که یک باگ واقعی پیدا کرده‌اید

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

  • توکن پس از تغییر الگوریتم پذیرفته می‌شود.
  • هیچ خطای اعتبارسنجی امضا وجود ندارد.
  • دسترسی به Endpointهای محافظت‌شده امکان‌پذیر است.
  • ارتقای سطح دسترسی (Role Escalation) موفق است.
  • پاسخ‌های API کاملاً عادی به نظر می‌رسند.

اگر برنامه هیچ اعتراضی نکند، برای آن‌ها خبر بدی است.

 

🧨 چگونه این را به یک P1 / P0 تبدیل کنید؟

JWT Algorithm Confusion زمانی بحرانی می‌شود که:

  • JWT برای احراز هویت اصلی استفاده شود.
  • نقش‌ها یا مجوزها داخل توکن قرار داشته باشند.
  • زمان انقضای توکن طولانی باشد.
  • در چندین سرویس استفاده شود.

موارد زیر را نشان دهید:

  • توکن جعلی
  • دسترسی بدون ورود معتبر
  • موفقیت در انجام عملیات سطح بالا

این یعنی فروپاشی کامل اعتماد.

 

📝 نحوه گزارش این باگ (آماده برای گزارش)

عنوان

JWT Algorithm Confusion امکان دور زدن احراز هویت را فراهم می‌کند.

تأثیر

یک مهاجم می‌تواند با تغییر الگوریتم امضا از RS256 به HS256 و استفاده از کلید عمومی به عنوان HMAC Secret، JWTهای معتبر جعل کند. این موضوع منجر به دور زدن کامل احراز هویت و دسترسی غیرمجاز به منابع محافظت‌شده می‌شود.

 

چرا این موضوع اهمیت دارد؟

  • اعتماد رمزنگاری را از بین می‌برد.
  • تمام سیستم‌های احراز هویت مبتنی بر توکن را تحت تأثیر قرار می‌دهد.
  • منجر به تصاحب حساب کاربری می‌شود.

 

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

چون:

  • JWT امن به نظر می‌رسد.
  • رمزنگاری برای بسیاری ترسناک است.
  • به کتابخانه‌ها کورکورانه اعتماد می‌کنند.
  • پیکربندی را تست نمی‌کنند.

اما این یک باگ رمزنگاری نیست. بلکه یک باگ منطقی (Logic Bug) است.

 

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

هر بار که با JWT روبه‌رو شدید:

  • آن را Decode کنید.
  • الگوریتم را بررسی کنید.
  • به دنبال کلیدهای عمومی بگردید.
  • تست Algorithm Confusion را انجام دهید.

همین یک تست می‌تواند به کشف باگ‌هایی با تأثیر بسیار بالا منجر شود.

ادامه این مجموعه

مقاله بعدی:

👉 دور زدن احراز هویت در WebSocket (WebSocket Authorization Bypass)
اینکه چگونه برنامه‌های Real-Time احراز هویت را فراموش می‌کنند و باعث نشت داده‌های زنده می‌شوند.

برچسب ها: apijwtpayloadRS256آموزشاعتبارسنجیاکسپلویتامنیتباگ بانتیبهروز منصوریتست نفوذتصاحب حساب کاربریتوکنجعل هویتدور زدن احراز هویترمزنگاری

قدیمی تر آسیب‌پذیری sqli در فروشگاه اپل آیدی

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

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

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

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

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

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

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

جستجو

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