Обхід автентифікації в Keycloak — глибоке занурення в наше відкриття

اللهم كن لأهل غزة عونًا ونصيرًا، اللهم احفظهم بحفظك، وأمدّهم بصبرٍ من عندك، وسدد رميهم، وقوِّ عزيمتهم، وارفع عنهم البلاء والظلم اللهم ارحم شهداءهم، واشفِ جرحاهم، وفرّج عنهم كربهم، واجبر قلوبهم إنك على كل شيء قدير

Як ми знаємо, Keycloak — це широко використовуване рішення для управління ідентифікацією та доступом з відкритим кодом, яке користується довірою багатьох організацій для обробки автентифікації та авторизації. Однак навіть найміцніші системи безпеки можуть мати вразливості.

pic

Стартова сторінка Keycloak

Спочатку ми використовували:
site:*.private.com inurl:Admin | Login
і знайшли цей піддомен:
https://sso.private.private.com/realms/

Вау! Це Keycloak — давайте почнемо!

При відкритті: https://sso.private.private.com/

Перенаправило мене на:

pic

pic

Це Realm для управління адміністраторами

Тепер, перед тим як зробити щось, давайте перейдемо за цим посиланням: admin/master/console
і спробуємо перевірити, чи є ці облікові дані правильними (admin, admin)

Але, на жаль, вони не дійсні 😞

pic

Не забудьте перевірити ці облікові дані за цим посиланням

Тепер давайте повернемося на сторінку входу і ініціюємо простий вхід. (Ось тут і полягає трюк, тому що якщо ви безпосередньо звернетеся до точки реєстрації, ви отримаєте помилку.)

pic

Натискаємо кнопку Вхід

Невірне ім’я користувача або пароль!! Замінимо authenticate на registration

pic

Заміна authenticate на registration

І ось ми на сторінці реєстрації! 😃🔥

pic

Сторінка реєстрації

Але, на жаль, реєстрація відключена. 😞

pic

реєстрація відключена

Тепер у мене є кілька варіантів, але найпростіший — це обійти інтерфейс, видаливши слово "disabled" з документа. !!!

pic

Видалення атрибута disabled

pic

І це спрацювало! 🎉 Тепер давайте захопимо запит за допомогою Burp Suite. 🔥

pic

Я знайшов цей тіло запиту, і після пересилання запиту акаунт був створений. Однак тепер я застряг на етапі pending і не можу отримати доступ до нічого!!

pic

етап pending😞!!!!!!

Добре, що мені робити далі? 🤔 У мене є кілька варіантів:

  • Виконати FUZZING для пошуку прихованих кінцевих точок або параметрів 🔍
  • Видалити слово "pending" і подивитися, чи дасть це доступ.
  • Але найпростіший варіант — це пошук через JavaScript (.js) файли для будь-яких підказок! 🕵️‍♂️

Під час пошуку через JavaScript (.js) файли, я знайшов ось це: 👇

pic

Чудово! Тепер давайте створимо ще один акаунт, модифікуючи деякі змінні. 🔄

pic

Модифікація змінних

Після пересилання запиту я тепер адміністратор з статусом accepted! 🔥

pic

І ось ми на 🔥

Ми успішно отримали доступ до чутливих даних, конфігурацій, ….

etc**! 🔥

pic

Усі користувачі в ORG!!!

pic

🔥🔓!!

І ось ми на кінці! з моїм братом Az3m

Слідкуйте за нами, щоб бути в курсі! Більше відписів буде опубліковано пізніше, але через обмеження часу, ми публікуватимемо їх пізніше. Слідкуйте за нами! 🔥📢

Linkedin

Twitter

صلِّ على خير الأنام ، محمد بن عبد الله

و تذكر ان لا خير في عمل يشغل عن الصلاة

Перекладено з: Bypassing Authentication in Keycloak — A Deep Dive into Our Discovery