• XSS.stack #1 – первый литературный журнал от юзеров форума

Статья Что скрывается за ошибкой: отравление при сбросе пароля

вавилонец

CPU register
Пользователь
Регистрация
17.06.2021
Сообщения
1 116
Реакции
1 265

Введение​

В этой статье я объясню, что такое отравление при сбросе пароля, и покажу примеры на реальных проектах. Давайте начнем

Что такое отравление при сбросе пароля​

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

Я не вижу особого внимания к этой ошибке. Я могу найти только несколько отчетов (1 отчет) на https://huntr.dev об этой уязвимости. Поэтому я решил поискать его сам, посмотреть, как они существуют и как они выглядят за кодом. Теперь, когда мы знаем, что это такое, позвольте мне показать вам несколько примеров из реальной жизни.

CVE-2022–0935​

Первый пример — в живом чате помощника . Живой чат-помощник — это система продажи билетов, созданная на php. В функции сброса пароля это тело сгенерированного электронного письма.

1655303040828.png


Он использует $hostв качестве узла ссылки для сброса пароля, и это объявление переменной $host.

1655303113271.png


Это один из наиболее распространенных случаев отравления ссылки для сброса пароля, также известный как внедрение заголовка хоста. Как видите, он использует $_SERVER[‘HTTP_HOST’]который, согласно документации php, является заголовком хоста

1655303136872.png


И этот заголовок может контролироваться пользователем. Что делает его уязвимым. Если мы запросим сброс пароля и изменим заголовок хоста, мы можем отравить ссылку сброса пароля, что позволит нам захватить учетную запись другого пользователя. Весь отчет читайте здесь. https://huntr.dev/bounties/a7e40fdf-a333-4a50-8a53-d11b16ce3ec2/ . Мейнтейнеры очень отзывчивы и, в отличие от других, исправили ошибку.

Тревога​

Второй пример: Alerta — это система оповещения, созданная с помощью python и flask. Вот как они генерируют электронное письмо для сброса пароля

1655303173572.png


В отличие от предыдущего, он не находится в заголовке хоста, а скорее использует также потенциально контролируемый пользователем заголовок, заголовок Referrer. Функция ссылки просто объединяет все части URL-адреса вместе.

1655303206185.png


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

MantisBt​

MantisBt или Mantis Bug Tracker — это программное обеспечение для отслеживания ошибок, созданное с помощью php. Вот как они генерируют электронное письмо для сброса пароля.

1655303270036.png


Связанный сброс пароля создается с использованием этого string_get_confirm_hash_urlфункция. Давайте посмотрим, что он делает.

1655303304805.png


Он возвращает строку URL-адреса для сброса пароля. Хостовая часть URL-адреса получается с помощью config_get_global( ‘path’ ).

1655303344421.png


Эта функция получает глобальную переменную g_<variable name>. В нашем случае это глобальная переменная g_path. И я нашел эту глобальную переменную в config_defaults_inc.php

1655303418812.png


И переменная $t_host установлена в этой части кода

1655303446252.png


Здесь вы можете видеть, что он использует $_SERVER[‘HTTP_X_FORWARDED_HOST’]который X-Forwarded-Hostзаголовок, если он установлен. Этот заголовок обычно используется прокси-серверами и может контролироваться пользователем. Итак, чтобы проверить это, я сделал запрос на сброс пароля и добавил X-Forwarded-Hostзаголовок. Я также немного изменил его, чтобы он распечатывал электронное письмо в ответе.

1655303476905.png


Я также сообщил об этой ошибке три месяца назад, но не получил ответа. Глядя на их отчеты об ошибках, я обнаружил, что кто-то уже сообщал об этом еще в 2019 году, но его просто проигнорировали. https://mantisbt.org/bugs/view_all_bug_page.php

Окончание​

Прежде чем я начал искать ошибки сброса пароля, я обычно тестировал только заголовок хоста в подходе «черный ящик», но это меня многому научило. Отравление при сбросе пароля может существовать и в других местах. Надеюсь, вы узнали что-то новое. Спасибо за чтение.
Твиттер Автора Оригинала: https://twitter.com/tomorrowisnew_
Дискорд Автора Оригинала: https://discord.gg/bugbounty
Оригинальная статья: https://noob3xploiter.medium.com/behind-the-bug-password-reset-poisoning-f5a51d890260
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх