برنامه نویسی

آزمایشگاه JWT

آزمایشگاه: بای پس تأیید اعتبار JWT از طریق امضای تأیید نشده

توضیحات آزمایشگاه:

برای مدیریت جلسه ورود به سیستم از JWT استفاده کنید. با این حال ، به دلیل خطای اجرای ، سرور بررسی نمی کند signature از JWT این به ما امکان می دهد JWT را بدون دانستن قفل مخفی سرور ویرایش کنیم ، از این طریق مدیر و حذف حساب ها به دست می آوریم carlosبشر

🎯 اهداف

  • با بهره گیری از JWT برای به دست آوردن حقوق مدیر.
  • دسترسی /مدیر.
  • حساب کارلوس را حذف کنید.

مراحل انجام

مرحله 1: ورود به حساب. (wiener:peter)

شرح تصویر

مرحله 2: پیدا کردن cookie session

Proxy Chuyển Sang Proxy → HTTP HISTORY.
درخواست tìm دریافت /حساب من.
در هدرهای درخواست ، جستجو کنید cookie session حاوی JWT است.

شرح تصویر

مرحله 3: رمزگشایی

  • بخش قطعه قطعه به گسترش JSON Web Tokens و قسمت را ببینید payload

شرح تصویر

  • ثابت کردن "sub": "wiener""sub": "administrator"

شرح تصویر

  • ارسال درخواست با GET/admin

شرح تصویر

مرحله 4: ببینید response در وب

شرح تصویر

ارزیابی شخصی

این آزمایشگاه یا در کمک به زبان آموزان در درک شکاف هنگامی که سرور امضا JWT را تأیید نمی کند ، یک خطای امنیتی جدی می تواند منجر به کنترل حساب شود.

آزمایشگاه: بای پس از احراز هویت JWT از طریق تأیید امضای ناقص

توضیحات آزمایشگاه:

هدف آزمایشگاه اصلاح نشانه خود برای دسترسی به صفحه مدیر در /admin و کاربران را حذف کنید carlosبشر

مراحل انجام

  • برای ورود به سیستم مراحل اساسی مشابه آزمایشگاه اول ادامه دهید.
  • با این حال ، به نظر می رسد این آزمایشگاه به راحتی آزمایشگاه نیست. پس از ویرایش بار و ارسال درخواست ، حساب حذف شده حساب حذف شد

شرح تصویر

شرح تصویر

  • ببینید قسمت هدر مخالف آن است !!!
{
    "kid": "7b113c0f-579f-468e-9512-e1972bca31e5",
    "alg": "RS256"
}

alg: "RS256"الگوریتم رمزگذاری امضای JWT است.
==> سعی کنید ALG را به “هیچ” تغییر دهید.

شرح تصویر

هنوز نه !!!!!!
سعی کنید قطعات را حذف کنید signature

شرح تصویر

دوباره درخواست را ارسال کنید.

شرح تصویر

شرح تصویر

ارزیابی شخصی

این آزمایشگاه اغلب به روزرسانی بیشتری نسبت به آزمایشگاه اول دارد. به طور خاص ، این یک نمونه معمولی از سوراخ JWT “None” است algorithm vulnerabilityبشر

آزمایشگاه: بای پس از احراز هویت JWT از طریق کلید امضای ضعیف

توضیحات آزمایشگاه:

این آزمایشگاه از JWT استفاده می کند (JSON Web Token) برای مدیریت جلسه ورود. با این حال ، سرور از یکی استفاده می کند secret key برای امضای و تأیید نشانه ها بسیار ضعیف است. این باعث می شود مهاجم امکان پذیر باشد brute-force (ترک) کلید مخفی با لیست رمز عبور محبوب. پس از پیدا کردن کلید مخفی ، می توانیم JWT را برای افزایش دسترسی دوباره طراحی کنیم admin panel و کاربر را حذف کنید carlosبشر

مراحل انجام

  • مراحل مجدداً مانند دو آزمایشگاه فوق ، این آزمایشگاه به توانایی بهره برداری از کلید مخفی نیاز دارد ، بنابراین جهت شکستن توسط Hashcatبشر
  • کلید مخفی Brute-Force با دستور HashCat:
hashcat -a 0 -m 16500 <YOUR-JWT> /path/to/jwt.secrets.list

پرونده jwt.secrets.list: https://github.com/wallarm/jwt-secrets/blob/master/jwt.secrets.list

  • با موفقیت جستجو شد !!

شرح تصویر

==> کلید: Secret1

  • به jwt.io بروید کلید پیدا شده را اضافه کنید

شرح تصویر

  • کوکی Sessionie را بیاورید که به تازگی در Burp یافت شده است و بسته را به عقب ارسال می کند ==> انجام شده

شرح تصویر

ارزیابی شخصی

این آزمایشگاه اغلب نسبت به 2 آزمایشگاه اول از ارتقاء سطح بیشتری برخوردار است. به طور خاص نیاز به ترک دارد secret key برای تأیید جلسه کوکی. علاوه بر این ، آزمایشگاه دارای HashCat Applied است – یک ابزار ترک خوردگی منبع باز ، عملکرد قدرتمند و بهینه شده ، و از بسیاری از الگوریتم های مختلف هش پشتیبانی می کند. از بسیاری از روشهای حمله برای یافتن رمز عبور از هش (عملکرد هش) استفاده می کند.

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا