Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
В этой статье я расскажу, как при проведении пентеста вскрыл целый ряд уязвимостей одного веб‑сервиса, которые в итоге дали мне доступ к аккаунтам любых пользователей. Я вкратце опишу каждую уязвимость, а затем посмотрим, что надо сделать, чтобы закрыть подобные дыры. Pentest Award
Этот текст получил первое место на премии Pentest Award 2024 в категории «Пробив web». Это соревнование ежегодно проводится компанией Awillix.
warning
Статья имеет ознакомительный характер и предназначена для специалистов по безопасности, проводящих тестирование в рамках контракта. Автор и редакция не несут ответственности за любой вред, причиненный с применением изложенной информации. Распространение вредоносных программ, нарушение работы систем и нарушение тайны переписки преследуются по закону.
На сайте, который я тестировал, была возможность зайти в личный кабинет. А на странице входа нашлась возможность перебирать пользователей и смотреть ответ сервера: в случае если пользователь с введенным именем существует, сервер отвечает иначе.
Если указываем существующую учетку, получаем сообщение «Введен неверный пароль» либо «Превышено количество попыток входа с неверным паролем». Если же пользователя с таким логином нет, то в ответе сервера будет сообщение «Ваши данные не найдены в системе. Проверьте правильность указанных данных».
Сообщение для валидного логина
Сообщение для невалидного логина
Я запустил автоматизированный подбор по словарю и нашел некоторое количество валидных логинов.
Дальше я нашел возможность подбирать по словарю пароли найденных пользователей — опять же по ответу сервера на введенные данные. Это атака password spraying. Новые пароли я пробовал каждые 30 минут, так как после каждого следующего неверного ввода учетных данных период блокировки не увеличивался. В итоге удалось подобрать пароли для трех пользователей сервиса.
Сразу зайти в личный кабинет не удалось из‑за того, что сервис проверял второй фактор аутентификации и просил ввести код из SMS.
Страница ввода кода из SMS
Изучив код этой страницы, я нашел интересный параметр — mode4
. Здесь он имеет значение sms
.
Параметры GET-запроса страницы ввода кода из SMS
Я перебрал возможные значения этого параметра и нашел несколько таких, при которых нас не перенаправляет обратно на страницу ввода логина и пароля.
Интересные значения, которые может принять параметр mode4
Источник: xakep.ru