На странице
Перебор имён пользователей по блокировке аккаунта
Лаборатория
Username enumeration via account lock · Practitioner
Решение
Дано
This lab is vulnerable to username enumeration. It uses account locking, but this contains a logic flaw. To solve the lab, enumerate a valid username, brute-force this user's password, then access their account page.
Candidate usernames
Candidate passwords
Анализ задания
На сайте используется защита от брутфорса — блокировка аккаунта. Нужно, используя эту особенность, найти существующего пользователя и подобрать пароль.
Разведка
Посмотрим, как работает функция входа и как выглядит блокировка аккаунта. В теории мы можем попробовать какое-нибудь имя пользователя, которое явно должно быть, и узнаем, как работает блокировка аккаунта.
Попробовал 30 запросов для admin, root, administrator. Стабильно Invalid username or password. Блокировки пока не видно.
Меняю тактику. Делаю список из имён пользователей, в котором каждое имя будет повторяться 10 раз, чтобы словить блокировку. Отсортируем результаты атаки по длине ответа. Вот наш пока единственный кандидат — americas.
Ок, теперь организуем атаку на пароль этого пользователя. Сортируем по длине ответа. Нашли americas / monkey.
Лаба решена.
Ещё в этой категории
Эксплуатация небезопасной десериализации через функции приложения (PortSwigger Lab)
Подмена поля `avatar_link` в объекте сессии для удаления произвольного файла через функцию удаления аккаунта.
Изменение типов сериализованных данных (PortSwigger Lab)
Эксплуатируем нестрогое сравнение PHP, меняя тип `access_token` на целое `0` и обходя аутентификацию.
Изменение сериализованных объектов (PortSwigger Lab)
Меняем булево поле `admin` в PHP-сериализованной куке сессии и получаем права администратора.