На странице
Брутфорс пароля через смену пароля
Лаборатория
Password brute-force via password change · Practitioner
Решение
Уже устал писать отчёт :)
В общем, тут всё несложно.
Есть роут POST /my-account/change-password.
У него нет защиты от брутфорса, и мы можем заменить имя пользователя.
Есть нюанс: если указать новый пароль и его повтор одинаковыми, и если текущий пароль задан неверно, — сервер будет отвечать редиректом.
Если же будут не совпадать пароли, то тогда возвращён код 200. И если совпадёт — тоже 200, но длина ответа будет отличаться.
Организуем атаку в Intruder. Используем предоставленный словарь паролей.
В теле:
username=carlos¤t-password={pwd}&new-password-1=123&new-password-2=321
Тут в pwd будет подставлен пароль из словаря.
Запускаем атаку, отсортируем по длине ответа.
Пароль — ginger.
Лаба решена!
Ещё в этой категории
Внедрение произвольного объекта в PHP (PortSwigger Lab)
Восстановление утёкшего исходного кода и внедрение сериализованного объекта CustomTemplate, чей __destruct удаляет произвольный файл.
Эксплуатация небезопасной десериализации через функции приложения (PortSwigger Lab)
Подмена поля `avatar_link` в объекте сессии для удаления произвольного файла через функцию удаления аккаунта.
Изменение типов сериализованных данных (PortSwigger Lab)
Эксплуатируем нестрогое сравнение PHP, меняя тип `access_token` на целое `0` и обходя аутентификацию.