[M] ParamsDict и ParamsMask

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

Модули занимаются поиском параметров с которыми можно обращаться к URL. Логика работы основана на том, что обращение к URL с определёнными параметрами изменяет контент возвращаемый им.

Возможно 4 варианта поиска — методами GET, POST, в cookies и загружаемых файлах. Поиск методом GET выглядит как запрос URL с большим количеством параметров. У метода POST параметры передаются в теле запроса. В поиске через cookies параметры передаются как множество cookies с различными именами. А в поиске через загружаемые файлы на сервер отправляются запросы загрузки нескольких файлов с мизерным содержимым.

Важный момент. Количество одновременно передаваемых в запросах параметров регулируется опцией «--max-params-length». Она имеет двойное значение. Для GET и POST это максимальная длина строки параметров вместе с их значением и амперсандами (a=1&b=1&c=1...). Для cookies и файлов это количество самих имён проверяемых за один запрос. Рекомендуемые значения параметра «--max-params-length» для GET и POST составляют 1000. Для cookies и файлов — 20.

Значение, помещаемое в искомые параметры по умолчанию «1» и может меняться через указание опции «--value».

Работа модулей осуществляется как в режиме «сырого» http, так и средствами selenium.

Примеры

Поиск параметров скрипта методом GET по словарю:

./ws.py ParamsDict --url http://simple.polygon.web-scout.online/params-bruter-dict-get.php --dict bases/demo/dict.txt --max-params-length 1000 --params-method GET --not-found-re NOT

Поиск параметров скрипта методом GET по маске:

./ws.py ParamsMask --url http://simple.polygon.web-scout.online/params-bruter-dict-get.php --mask ?l,1,2 --max-params-length 1000 --params-method GET --not-found-re NOT

Поиск параметров скрипта принимающего файлы на загрузку:

./ws.py ParamsDict --url http://simple.polygon.web-scout.online/params-bruter-dict-files.php --dict bases/demo/dict.txt --max-params-length 10 --params-method FILES --not-found-re NOT

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

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

Имя

По умолчанию

R

S

Описание

--url *

Да

Да

Целевой URL

--params-method *

Да

Да

Метод поиска. GET, POST, COOKIES, FILES

--max-params-length *

Да

Да

Для GET и POST это максимальная длина строки параметров вместе с их значением и амперсандами (a=1&b=1&c=1...). Для cookies и файлов это количество самих имён проверяемых за один запрос. Рекомендуемые значения параметра «--max-params-length» для GET и POST составляют 1000. Для cookies и файлов — 20.

--dict *

Да

Да

Для ParamsDict. Путь к словарю для перебора.

--mask *

Да

Да

Для ParamsMask. Маска для перебора.

--combine-template *

Да

Да

Для ParamsCombine. Шаблон для комбинированного поиска. Строка с вхождениям маркеров «%m%» и «%d%» на чьё место подставляются слова из маски и словаря соответственно.

--value

1

Да

Да

Значение которое помещается в искомые параметры.

--not-found-re

Да

Да

Регулярное выражение (python.re) для определения отрицательного ответа веб-сервера (аналог кода 404)

--not-found-size

Да

Да

Размер отрицательного ответа (аналог кода 404). Помните что он может отличаться у разных утилит. Пользуйтесь тестовым режимом чтоб узнать нужное вам значение.

--not-found-codes

Да

Нет

Набор кодов статуса (через запятую) которые будут считаться аналогами 404.

--proxies

Да

Да

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

--retest-re

Да

Да

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

--retest-codes

Да

Нет

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

--headers-file

Да

Нет

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

--ignore-words-re

Да

Да

Регулярное выражение (python.re) для игнорирования проверяемых фраз. Пригодится в случаях когда вам не нужно проверять слова из словаря/маски содержащие какой-либо фрагмент, например начинающиеся на «.ht».

--msymbol

@

Да

Да

Маркировочный символ для шаблона поиска.

--delay

0

Да

Да

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

--threads

10

Да

Да

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

--parts

0

Да

Да

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

--part

0

Да

Да

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

--test

0

Да

Да

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

--xml-report

0

Да

Да

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

--selenium

0

Нет

Да

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

--browser-recreate-re

Нет

Да

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

--browser-wait-re

Нет

Да

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