Bruteforce - эксплуатация уязвимости
Первые шаги
Предположим, что у нас имеются списки, с наибольшей вероятностью используемых на ресурсе логинов и паролей.
Попробуем авторизоваться на ресурсе с помощью метода грубой силы и использования всего-навсего функционала инструментов разработчика в браузере.
Заходим на страницу авторизации и попробуем ввести логин:
Получим ошибку про неправильный логин.
И это радует.
Потому что сообщения о неверном логине и пароле явно будут отличаться, а значит, можно сначала подобрать логин, а потом перейти к паролю.
F12 спешит на помощь
Автоматизируем подбор логина, используя только средства разработчика в Firefox.
На текущей странице нужно:
- нажать f12,
- открыть вкладку «Сеть»,
- далее ввести какие-либо данные в поля логина и пароля,
- нажать «login»,
- и во вкладке «Сеть» отобразятся все запросы, которые были отправлены со страницы.
Нам нужно найти POST запрос со статусом 200 и ключевым словом login.
- Клик правой кнопкой мыши по строке с данным запросом вызовет контекстное меню.
- Выбираем "Использовать как fetch в консоли" (запрос будет скопирован в буфер и появится во вкладке ниже)
Это и есть наш POST запрос, в котором указаны username=1 password=2.
Модифицируем этот код так, чтобы вместо параметра username подставлялось значение из списка логинов.
Подготовка к bruteforce
1. Подготовим массив с логинами:
Добавим цикл перебора логина. Логин будем подставлять прямо в запросе:
Скопируем этот код и вернёмся в Firefox..
2. Использование консоли и вкладки "Сеть" в FF
Этот модифицированный скрипт и вставим в консоль на странице с формой и жмакнем enter, чтобы запустить цикл:
Далее Перейдём на вкладку «Сеть» - здесь куча POST запросов со статусом 200 это и есть перебор логинов.
Среди них нужно вручную найти ответ, где логин пользователя оказался верным.
Об этом будет свидетельствовать изменение ошибки на «Incorrect password».
В текущем случае - это пользователь af, так как теперь на странице выводится ошибка, что пароль не верный.
3. Теперь подберём пароль.
В коде с циклом пропишем логин пользователя, раз мы его уже нашли, а бежать мы теперь будем по массиву паролей (который составлен аналогично usernames):
Отправка запросов
Этот модифицированный скрипт опять вставим в консоль на странице с формой:
В ответах на вкладке «Сеть» теперь будем искать POST запрос со статусом 302: под ним и будет нужный пароль. В текущем случае пароль mustang.
Итак, логин и пароль подобраны и для этого на не понадобилось никакое специальное ПО.
Комментарии