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 в «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-запрос:
Случайное число в VerC
- Создание сеансового cookie-файла:
Объедините значения PIDM и WEBID:
Code:
BVNXF71234724
Base64: QlZOWEY3MTizNDcyNA==
Используйте эту строку в кодировке Base64 в качестве cookie-файла сеанса.
- Манипулирование ответом:
Перехватите ответ сервера и измените его, включив в него созданный файл cookie сеанса:
Когда вы отправляете запрос Post, перехватите ответ и добавьте созданный вами файл cookie.
- Доступ к панели инструментов:
Поддельный ответ, содержащий созданный сеансовый cookie-файл, перенаправит вас на панель управления, фактически обходя проверку одноразового пароля.
Сложность ошибки
Прорывом в этом открытии стало понимание того, что сеансовые куки можно создавать с использованием PIDM и WEBID. Проанализировав ответ сервера на действительный OTP и поняв, как управляется сеанс, я пришел к выводу, что эти параметры можно объединить и закодировать для создания действительных сеансовых куки.
Шаги к открытию:
- Анализ параметров: использовался действительный одноразовый пароль (OTP), и было обнаружено, что сервер создал сеансовый cookie-файл с использованием PIDM и WEBID.
- Исследование поведения сеанса: подтверждено, что cookie-файл сеанса можно скопировать вручную путем объединения и кодирования PIDM и WEBID.
- Манипулирование параметрами: создание сеансовых cookie-файлов вручную для проверки механизма обхода.
- Манипуляция ответом: использование в ответе специально созданного сеансового cookie-файла для обхода проверки одноразового пароля.
Это открытие было интригующим, поскольку оно показало, что механизм управления сеансами системы непреднамеренно открыл путь для обхода критических мер безопасности. Возможность создания сеансового cookie с использованием PIDM и WEBID выявила скрытую уязвимость, которую можно было использовать, понимая и манипулируя поведением сеанса.