[M] Forms

Общее описание

Используется для перебора методом грубой силы (bruteforce). В случае работы с сырым (raw) HTTP используется метод POST, в режиме selenium работа идёт согласно логике целевого сайта. В качестве источника паролей используется словарь.

Конфигурация перебора В работе с сырым (raw) HTTP конфигурацией является тело POST-запроса содержащее маркеры «^USER^» и «^PASS^» на места которых будут подставляться логин и пароль соответственно. Указывается в параметре «--conf-str». Примеры:

  • login=^USER^&password=^PASS^

  • {"login":"^USER^","pwd":"^PASS^"}

Если работа идёт в режиме selenium, то конфигурация перебора сохраняется в файле, путь к которому указывается в параметре «--conf-file». Он должен состоять из трёх строк, в начале которых располагается маркер, затем идёт символ табуляции (\t), после чего указывается CSS-селектор связанный с маркером. В этом режиме используются следующие маркеры:

  • ^USER^ - поле в которое будет введён логин

  • ^PASS^ - поле в которое будет введён пароль

  • ^SUBMIT^ - элемент по которому нужно кликнуть для отправки формы

Пример содержимого такого файла:

^USER^ #user
^PASS^ #pass
^SUBMIT^ #submit

Здесь логин будет вводиться в текстовое поле с id=user, пароль в текстовое поле с id=pass, и затем будет происходить клик по элементу с id=submit.

Примеры

Простой брут POST формы:

./ws.py Forms --url http://simple.polygon.web-scout.online/admin.php --dict bases/demo/dict.txt --conf-str "login=^USER^&password=^PASS^" --false-re "User: " --login admin

Брут формы в selenium-режиме:

./ws.py Forms --url http://selenium.polygon.web-scout.online/admin.php --dict bases/demo/dict.txt --conf-file bases/demo/form-brute.conf --false-re "User: " --login admin --selenium 1 --browser-wait-re "checking"

Опции (* - обязательные)

Для параметров «-conf-file», «--conf-str» обязательным является указание одного из них. Для «--true-phrase», «--false-phrase», «--false-size» аналогично.

R - присутствует ли в raw режиме S - присутствует ли в selenium режиме.

Имя

По умолчанию

R

S

Описание

--url *

Да

Да

Ссылка на страницу куда должен уходить запрос (в случае сырого HTTP), или где находится форма (selenium-режим)

--dict *

Да

Да

Путь к словарю паролей

--login *

Да

Да

Целевой логин

--conf-str *

Да

Нет

Только для raw режима. Строка конфигурации перебора для режима работы с сырым HTTP

--conf-file *

Нет

Да

Файл с конфигурацией перебора для selenium-режима

--true-re *

Да

Да

RegEx (python.re), при наличии совпадений в теле ответа свидетельствующая о положительном результате.

--false-re *

Да

Да

RegEx (python.re), при наличии совпадений в теле ответа свидетельствующая об отрицательном результате.

--false-size *

Да

Да

Размер тела отрицательного ответа. Помните что разные утилиты могут давать разный размер ответа. Используйте тестовый режим чтобы узнать нужное вам значение.

--pass-max-len

Да

Да

Пароли больше этой длины будут пропускаться

--pass-min-len

Да

Да

Пароли меньше этой длины будут пропускаться

--first-stop

0

Да

Да

Останавливать работу после первого найденного результата. Связано это с вероятностью ложных срабатываний.

--follow-redirects

1

Да

Нет

Следовать по редиректам отправляемым сервером. Только raw-режим. В selenium-режиме такое происходит автоматически.

--reload-form-page

0

Нет

Да

Только selenium-режим. Включение данного параметра приводит к тому, что целевая страница открывается заново после каждой попытки заполнения формы. Может пригодиться тогда, когда после неудачной попытки авторизации на итоговой странице не видно формы и пользователю нужно как-то вернуться на неё.

--proxies

Да

Да

Файл со списком http-proxy.

--retest-re

Да

Да

Регулярное выражение (python.re) для поиска в ответе сервера признака необходимости переотправить запрос. Например «Service Temporarily Unavailable».

--retest-codes

Да

Нет

Набор кодов (через запятую) указывающих на то, что запрос нужно отправить заново. Например «502,503».

--headers-file

Да

Нет

Файл с http заголовками для включения в заголовки запроса.

--delay

0

Да

Да

Задержка между запросами (в секундах). Касается не всех рабочих потоков в целом, а каждого потока в частности.

--threads

10

Да

Да

Количество рабочих потоков

--parts

Да

Да

На сколько частей разбить проверяемый список (словарь, маску)

--part

Да

Да

С какой из частей проверяемого списка работаем.

--test

0

Да

Да

Включение тестового режима

--xml-report

Да

Да

Путь к xml-отчёту

--selenium

Нет

Да

Включение selenium-режима

--browser-recreate-re

Нет

Да

Регулярное выражение (python.re). При совпадении в ответе веб-сервера бразер будет закрыт и запущен заново. При этом будет сменён прокси, если они используются.

--browser-wait-re

Нет

Да

Регулярное выражение (python.re). При совпадении в ответе веб-сервера браузер остановит работу и будет ждать пока совпадение не исчезнет. Может использоваться для ручного ввода captcha или обхода anti-ddos защит («wait 5 secs, we check your browser»).