Обход OTP путем манипулирования сеансом

Man

Professional
Messages
2,963
Reaction score
486
Points
83

Введение​

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

Краткое содержание​

Во время моего недавнего приключения по поиску ошибок я столкнулся с критической уязвимостью на странице OTP компонента веб-входа. Эта проблема возникает из-за неправильной обработки определенных параметров запроса, что позволяет осуществлять несанкционированный доступ посредством манипуляции ответами. Суть этого эксплойта заключается в создании сеансовых cookie-файлов с использованием параметров PIDM и WEBID.

Открытие​

В ходе своего расследования я заметил нечто странное в обработке аутентификации пользователя на странице OTP. Анализируя трафик между клиентом и сервером, я обнаружил, что параметры PIDM и WEBID в запросе POST использовались для создания сеансового cookie. Это понимание пришло из использования действительного кода OTP и наблюдения за тем, как ответил сервер.

Основные наблюдения​

  • Задействованные параметры: PIDM и WEBID
  • Техника эксплойта: Манипулирование ответом
  • Воздействие: Несанкционированный доступ через обход OTP

Понимание правильного ответа​

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

Чтобы понять, как сервер создает сеансовые куки, я использовал действительный код OTP во время тестирования. Вот как разворачивался процесс:
  • Использование действительных учетных данных и одноразового пароля:
После ввода действительных учетных данных и действительного кода OTP я наблюдал ответ сервера. Ответ включал сеансовый cookie, созданный с использованием значений PIDM и WEBID из запроса POST. Например:

0*lUbhbEOHW3xL1R0J


Действительный код OTP в «VerC»

Ответ сервера был следующим:
Code:
Set-Cookie: SESSID=QlZOWEY3MTIzNDcyNA==
  • Расшифровка сеансового cookie-файла:

Расшифровка этого файла cookie, закодированного в Base64 (QlZOWEY3MTIzNDcyNA==), показала:
Code:
BVNXF71234724

Это подтвердило, что PIDM и WEBID использовались для создания сеансового cookie-файла.
  • Создание сеансового cookie-файла:

С этими знаниями стало ясно, что, создав сеансовый cookie с использованием PIDM и WEBID, злоумышленник может обойти OTP. Вот как:
  • Недействительный OTP и ручное создание:

Даже если используется недействительный код OTP, злоумышленник может вручную создать сеансовый cookie, объединив PIDM и WEBID, закодировав их с помощью Base64 и манипулируя ответом, чтобы включить этот сеансовый cookie. Это обходит необходимость в действительном OTP.

Вот процесс создания сеансового cookie-файла:
Code:
PIDM=1234724
WEBID=BVNXF7
Combined: BVNXF71234724
Base64: QlZOWEY3MTIzNDcyNA==

Созданный файл cookie можно использовать для манипулирования ответом сервера.
  • Наблюдение за перенаправлением на панель управления:

После ввода действительного одноразового пароля я заметил, что ответ сервера содержал:
Code:
<HTML>
<HEAD>
<meta http-equiv = "refresh" content = "0;url=/app/dashboard?welcome=true">
</HEAD>
</HTML>

Доказательство концепции (PoC)​

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

Введите случайное число в поле ввода OTP и захватите POST-запрос:

0*z-_ZE9jls07o4cGD


Случайное число в VerC
  • Создание сеансового cookie-файла:

Объедините значения PIDM и WEBID:
Code:
BVNXF71234724
Base64: QlZOWEY3MTizNDcyNA==

Используйте эту строку в кодировке Base64 в качестве cookie-файла сеанса.
  • Манипулирование ответом:

Перехватите ответ сервера и измените его, включив в него созданный файл cookie сеанса:

0*d0xs8_e5AMHmi8Bi


Когда вы отправляете запрос Post, перехватите ответ и добавьте созданный вами файл cookie.
  • Доступ к панели инструментов:

Поддельный ответ, содержащий созданный сеансовый cookie-файл, перенаправит вас на панель управления, фактически обходя проверку одноразового пароля.

Сложность ошибки​

Прорывом в этом открытии стало понимание того, что сеансовые куки можно создавать с использованием PIDM и WEBID. Проанализировав ответ сервера на действительный OTP и поняв, как управляется сеанс, я пришел к выводу, что эти параметры можно объединить и закодировать для создания действительных сеансовых куки.

Шаги к открытию:​

  1. Анализ параметров: использовался действительный одноразовый пароль (OTP), и было обнаружено, что сервер создал сеансовый cookie-файл с использованием PIDM и WEBID.
  2. Исследование поведения сеанса: подтверждено, что cookie-файл сеанса можно скопировать вручную путем объединения и кодирования PIDM и WEBID.
  3. Манипулирование параметрами: создание сеансовых cookie-файлов вручную для проверки механизма обхода.
  4. Манипуляция ответом: использование в ответе специально созданного сеансового cookie-файла для обхода проверки одноразового пароля.

Это открытие было интригующим, поскольку оно показало, что механизм управления сеансами системы непреднамеренно открыл путь для обхода критических мер безопасности. Возможность создания сеансового cookie с использованием PIDM и WEBID выявила скрытую уязвимость, которую можно было использовать, понимая и манипулируя поведением сеанса.

Влияние​

Эта уязвимость позволяет злоумышленникам обходить проверку OTP, что создает значительные риски для конфиденциальности, целостности и доступности уязвимой системы. Понимая и эксплуатируя недостатки управления сеансами, злоумышленники могут получить несанкционированный доступ, не требуя действительных OTP.

Заключение​

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