На странице
Перебор имён пользователей по разным ответам сервера
Лаборатория
Username enumeration via different responses · Apprentice
Решение
Дано
This lab is vulnerable to username enumeration and password brute-force attacks. It has an account with a predictable username and password, which can be found in the following wordlists:
Candidate usernames
Candidate passwords
To solve the lab, enumerate a valid username, brute-force this user's password, then access their account page.
Анализ задания
Нам дают словари имён и паролей. Нужно организовать брутфорс-атаку. Сперва подобрать имя, а затем пароль. Для решения лабы нужно залогиниться в аккаунт жертвы.
Разведка
Логин происходит через:
POST /login
username=ПЕРЕМЕННАЯ&password=123
Нам предоставили список имён для перебора. Скопируем его и создадим атаку в Intruder. username делаем переменной — 101 имя для теста. Сервер всегда отвечает 200, поэтому отфильтруем по длине ответа. Вот наш кандидат — asterix.
Второй шаг — подобрать пароль:
username=asterix&password=ПЕРЕМЕННАЯ
Аналогично берём список — 100 паролей. Запускаем, тут можем ориентироваться на редирект 302:
HTTP/2 302 Found
Location: /my-account?id=asterix
Это значит, пароль подошёл. Пароль найден — computer.
Лаба решена.
Ещё в этой категории
Внедрение произвольного объекта в PHP (PortSwigger Lab)
Восстановление утёкшего исходного кода и внедрение сериализованного объекта CustomTemplate, чей __destruct удаляет произвольный файл.
Эксплуатация небезопасной десериализации через функции приложения (PortSwigger Lab)
Подмена поля `avatar_link` в объекте сессии для удаления произвольного файла через функцию удаления аккаунта.
Изменение типов сериализованных данных (PortSwigger Lab)
Эксплуатируем нестрогое сравнение PHP, меняя тип `access_token` на целое `0` и обходя аутентификацию.