آزمایشگاه 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 است – یک ابزار ترک خوردگی منبع باز ، عملکرد قدرتمند و بهینه شده ، و از بسیاری از الگوریتم های مختلف هش پشتیبانی می کند. از بسیاری از روشهای حمله برای یافتن رمز عبور از هش (عملکرد هش) استفاده می کند.