Использование Auth0 для обхода ограничений входа

Недавно, в процессе работы с одним веб-приложением от популярной программы Баг Баунти я обнаружил интересную уязвимость, и мне не терпится поделиться с вами моей находкой. В статье покажу, как я использовал неправильную конфигурацию Auth0 для обхода ограничений на вход в систему и последующего взлома веб-приложения.

Еще по теме: Уязвимость Broken authentication на bWAPP

Использование Auth0 для обхода ограничений входа

В ходе анализа веб-приложения я обнаружил панель входа, с помощью которой пользователи могут только войти в систему; страница регистрации отсутствует. Опция регистрации/подписки отключена в системе, поскольку она предназначена для доступа только авторизованных лиц.

Я решил проверить, не удастся ли обнаружить скрытые страницы регистрации или уязвимые конечные точки. К сожалению, мои усилия не увенчались успехом. Но затем я случайно ввел email и пароль на странице входа и перехватил запрос с помощью Burp Suite.

При перехвате запросов с помощью Burp Suite был сгенерирован POST-запрос следующего типа.

Перехват запросов Burp Suite сгенерирован POST-запрос
Перехват запросов Burp Suite сгенерирован POST-запрос

Когда я увидел структуру тела запроса, мне показалось, что это веб-приложение использует Auth0, а это означает, что злоумышленники могут создавать учетные записи с помощью API Auth0, отправляя POST-запрос на конечную точку /dbconnections/signup, даже если на сайте нет опции регистрации. Итак, я подумал: возможно, на этом сайте регистрация отключена, но Auth0 все равно может позволить создать учетную запись.

Поэтому я быстро отправил перехваченный запрос в repeater Burp Suite и изменил запрос на:

Во-первых я добавил конечную точку:

Во-вторых, я изменил название параметра username на email и realm на connection.

Эта конечная точка требует определенных параметров:

  • client_id — уникальный идентификатор приложения, запрашивающего доступ к сервисам Auth0.
  • connection — указывает провайдера идентификации для аутентификации.
  • email — адрес электронной почты пользователя.
  • password — желаемый пароль в соответствии с настроенной политикой паролей.

Изменив запрос, я просто отправил модифицированный запрос на создание учетной записи. И угадайте, что произошло — я получил ответ 200 OK с телом {«_id»:«», «email»: «admin@attacker.com», «email_verified»:false}. Это означает, что я успешно зарегистрировался.

Успешная регистрация в системе через API Auth0
Успешная регистрация в системе через API Auth0

Выполнив эти шаги, злоумышленник может использовать неправильную конфигурацию в Auth0 и обойти предусмотренный механизм регистрации, создав неавторизованную учетную запись и получив доступ к приложению.

После этого я просто использовал вновь созданные учетные данные для входа в приложение, и я успешно вошел в веб-приложение.

Теперь давайте прольем немного света на Auth0.

Неправильная конфигурация Auth0

Auth0 — это платформа аутентификации, широко используемая веб-сайтами и приложениями для управления идентификационными данными пользователей и обеспечения безопасного доступа к их услугам. Она предлагает различные рабочие процессы, позволяющие легко интегрировать процессы входа и регистрации.

По умолчанию Auth0 включает опцию регистрации при создании нового приложения. Однако если этот параметр настроен неправильно, он может представлять значительный риск для безопасности. Даже если в системе отключена регистрация, но реализована Auth0, существует вероятность обойти это ограничение.

Правильная конфигурация Auth0

Я рекомендую предпринять следующие шаги для снижения риска и предотвращения несанкционированного доступа.

Чтобы предотвратить подобные эксплойты, убедитесь, что функция Disable Sign Ups активирована в настройках базы данных приложения. Для этого перейдите на вкладку Authentication (Аутентификация) —> Database Connections (Подключения к базе данных) —> {YourApplicationDatabaseName} —> Disable Sign-Ups (Отключить регистрацию).

Disable Sign Ups Auth0
Отключение регистрации Disable Sign Ups

Если эта функция включена, любая попытка зарегистрироваться через Auth0 API приведет к появлению четкого сообщения о том, что публичная регистрация отключена.

Создание новых пользователей через API Auth0 невозможно
Создание новых пользователей через API Auth0 невозможно

Вот и все, друзья. Если у вас есть какие-то мысли или вопросы, не стесняйтесь делиться ими в разделе комментариев. Спасибо еще раз, и удачной охоты за ошибками!

ПОЛЕЗНЫЕ ССЫЛКИ:

ВКонтакте
OK
Telegram
WhatsApp
Viber

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *