Пишем автозалив

Статья не моя и старая, но довольно полезна.

Сначала немного теории

Для удобства написания, веб-инжекты записываются в отдельный файл, указанный в файле конфигурации как DynamicConfig.file_webinjects. Естественно после создания конченого файла конфигурации, ни какие дополнительные файлы не генерируются.

Файл представляет из себя список URL для которых можно указать неограниченное количество веб-инжектов, изменяемая URL указывается строкой по правилам файла конфигурации:

Цитата:

set_url [url] [флаги] [блэкмаска POST] [вайтмаска POST] [URL блокировки] [маска контекста]

при этом два последних параметра являются не обязательными.

URL – URL на которую должен срабатывать веб-инжект, можно использовать маску.
флаги – определяет основное условие загрузки, может состоять из нескольких флагов в любом порядке, но с учетом регистра. В настоящее время доступны следующие флаги:
P – запускать веб-инжект при POST запросе на URL.
G – запускать веб-инжект при GET запросе на URL.
L – изменяет предназначение веб-инжекта, если указать этот флаг, то будет получен нужный кусок данных и немедленно сохранен в лог.
F – дополняет флаг L, позволяет записывать результат не в лог, а в отдельный файл.
H – дополняет флаг L, сохраняет нужный кусок данных без вырезания тегов.
D – запускать веб-инжект раз в 24 часа.
блэкмаска POST – представляет из себя маску POST-данных передаваемых URL, при которых не будет запускаться веб-инжект.
вайтмаска POST – представляет из себя маску POST-данных передаваемых URL, при которых будет запускаться веб-инжект.
URL блокировки – в случаи если ваш веб-инжект должен грузиться лишь один раз на компьютере жертвы, то здесь следует указать маску URL, в случае открытия которой данный Веб-инжект не будет более использоваться на компьютере. Если вам этого не нужно, оставтье поле пустым.
маска контекста – маска части содержимого страницы, при котором должен сработать веб-инжект.

После указания URL, со следующей строки начинается перечисление веб-инжектов, которое длится до тех пор, пока не достигнут конец файла или не задана новая URL при помощи очередной записи set_url.

Один веб-инжект состоит из трех элементов:
Без флага L:

data_before – маска данных после которых нужно записать новые данные.
data_after – маска данных перед которыми следует записать новые данные.
data_inject – новые данные, на которые будет заменено содержимое между data_before, data_after.

С флагом L:

data_before – маска данных после которых начинается кусок получаемых данных.
data_after – маска данных перед которыми кончается кусок получаемых данных.
data_inject – играет роль заголовка для получаемых данных, нужен лишь для визуального выделения в логах.

Название элемента должно начинаться с первого байта новой строки и сразу после окончания названия должен быть перенос на следующею строку. Со следующей строки идут данные веб-инжекта, окончание данных обозначается строкой data_end, также это строка должна начинаться с первого байта очередной строки.
Внутри элемента вы можете свободно использовать любые символы.

Примечания:
Как известно, новая строка может обозначаться одним (0x0A) или двумя (0x0D и 0x0A) байтами.
Т.к. в основном веб-инжект используется для подмены содержимого текстовых данных, то данная особенность учтена, и бот успешно запускает веб-инжект даже если у вас новые строки обозначены двумя байтами, а в содержимом URL одним байтом и наоборот.
Элементы веб-инжекта могут быть расположены в любом порядке, т.е. data_before, data_after, data_inject, или data_before, data_inject, data_after и т.д.
Элемент может быть пустым.
При использовании флага L, в получаемых данных каждый тег заменяютя на один пробел.

Пример файла:

Подмена заголовка любого сайта по протоколу http на фразу "HTTP: Web-Inject"

Код:
set_url http://* GP

data_before
<title>
data_end

data_inject
HTTP: Web-Inject
data_end

data_after
</title>
data_end

Подмена заголовка любого сайта по протоколу http на фразу "HTTPS: Web-Inject" и добваление текста "BODY: Web-Inject" сразу после тега <body>

Код:
set_url https://* GP

data_before
<title>
data_end

data_inject
HTTPS: Web-Inject
data_end

data_after
</title>
data_end

data_before
<body>
data_end

data_inject
<hr>BODY: Web-Inject<hr>
data_end

data_after
data_end

Получем заголовок страницы

Код:
set_url http://*yahoo.com* LGP

data_before
<title>
data_end

data_inject
Yahoo Title: Web-Inject
data_end

data_after
</title>
data_end
(c) Kreon

Оставьте комментарий