This repository has been archived by the owner on Sep 20, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 70
/
INJECTS.TXT
215 lines (188 loc) · 6.7 KB
/
INJECTS.TXT
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
08.04.12
РУКОВОДСТВО ПО НАПИСАНИЮ ВЕБ-ИНЖЕКТОВ
Команда set_url (без учета регистра) должна находиться в начале строки и содержать 2 параметра в указаном порядке:
Маска URL на котором веб-инжект должен срабатывать и набор флагов которые опеределяют условия срабатывания и поведения веб-инжекта.
Флаги могут быть указаны в любом порядке без учета регистра. Разделителем между командой set_url и ее параметрами служит пробел.
Список доступных флагов:
G - веб-инжект срабатывает при GET запросе на указаный URL
P - веб-инжект срабатывает при POST запросе на указаный URL
L - меняет поведение веб-инжекта, из веб-страницы извлекаются данные и отправляются в лог
Символы маски:
* - любое количество любых символов, или ни одного символа
# - одна любая цифра, или символ #
? - один любой символ
остальные символы маски сравниваются без учета регистра
После команды set_url начинается перечисление элементов веб-инжекта. Оно длится до новой команды set_url или до конца файла.
Один веб-инжект состоит из трех видов элементов в любом порядке и количестве: data_before, data_inject, data_after.
Элемент должен начинаться его названием без учета регистра, должен находиться в начале строки и заканчиваться переносом строки.
Элемент должен заканчиваться командой data_end без учета регистра, которая должна находиться в начале строки и заканчиваться переносом строки.
Данные между началом и концом элемента являются телом элемента. Тело элемента может быть пустым, может содержать любые символы.
Назначение тел элементов:
data_before - маска данных которые находятся до заменяемых или извлекаемых данных
data_after - маска данных которые находятся после заменяемых или извлекаемых данных
data_inject - заменяющие данные, либо заголовок извлекаемых данных
Маска данных не учитывает регистр символов, игнорирует одинарную и двойную кавычку, пробелы и любые виды перевода строк.
Пример #1. Простейший веб-инжект:
set_url http://ya.ru/ gp
data_before
<title>
data_end
data_inject
New Title
data_end
data_after
</title>
data_end
Веб-инжект должен срабатывать на странице http://ya.ru/ при GET и POST запросе.
Заменяющие данные New Title вставляются вместо данных находящихся между <title> и </title>. Проще говоря происходит замена заголовка страницы.
Пример #2. Любой порядок и количество видов элементов:
SET_URL http://ya.ru/ PG
DATA_BEFORE
<title>
DATA_END
DATA_AFTER
</title>
DATA_END
data_after
</body>
data_end
data_before
<body
data_end
DATA_INJECT
New Title
DATA_END
data_inject
>New Body
data_end
В веб-инжекте с множеством одинаковых видов элементов их группы формируются в порядке очереди.
Рекомендуется не перемешивать элементы подобным образом для удобочитаемости и избежания возникновения ошибок в порядке очереди.
Первый найденый в списке data_before группируется с первым найденым в списке data_after и первым найденым в списке data_inject.
Второй найденый в списке data_before группируется со вторым найденым в списке data_after и вторым найденым в списке data_inject. и т.д.
Пример #3. Маски:
set_url *Ya.Ru* GP
data_before
<T?T?E>
data_end
data_inject
MASK
data_end
data_after
</*>
data_end
Веб-инжект должен срабатывать на страницах в названиях которых содержится текст ya.ru (без учета регистра) при GET и POST запросе.
Заменяющие данные MASK вставляются вместо данных находящихся между найдеными по маскам <T?T?E> и </*>. Под них попадают теги <title> и </title>.
Пример #4. Извлечение данных:
set_url http://ya.ru/ GPL
data_before
<title>
data_end
data_inject
Grabbed Title
data_end
data_after
</title>
data_end
Веб-инжект должен срабатывать на странице http://ya.ru/ при GET и POST запросе.
Данные находящиеся между <title> и </title> отправляются в лог и помечаются текстом Grabbed Title.
МАКРОСЫ
Макросы используются в data_inject
%BOTUID% (без учета регистра) - заменяется на уникальный идентификатор бота
%BOTDATA_varname% (без учета регистра) - заменяется на ранее сохраненную переменную с именем varname
Сохранение переменных происходит через GET запрос на любой адрес.
Если в запросе распознается команда на сохранение переменных, то такой запрос на сервер не отсылается
Пример команды на сохранение переменной: %SAVEDATA_varname=777% - значение 777 сохраняется в переменной varname
Пример запроса: http://microsoft.com/?blabla%SAVEDATA_var1=one%blabla%SAVEDATA_var2=two%blabla
ПОВЕДЕНИЕ ВЕБ-ИНЖЕКТОВ ПРИ КОМБИНИРОВАНИИ ПУСТЫХ И ЗАПОЛНЕНЫХ ТЕЛ ЭЛЕМЕНТОВ БЕЗ ФЛАГА L И С НИМ
Вариант #1. Все элементы заполнены:
set_url http://ya.ru/ G(L)
data_before
<title>
data_end
data_inject
#1
data_end
data_after
</title>
data_end
Данные data_inject заменяют данные между data_before и data_after
(L)Данные между data_before и data_after отправляются в лог и помечаются как data_inject
Вариант #2. Все элементы пусты:
set_url http://ya.ru/ G(L)
data_before
data_end
data_inject
data_end
data_after
data_end
Данные от начала до конца страницы удаляются
(L)Данные от начала до конца страницы отправляются в лог
Вариант #3. Элементы data_before и data_after пусты, data_inject заполнен:
set_url http://ya.ru/ G(L)
data_before
data_end
data_inject
#3
data_end
data_after
data_end
Данные data_inject добавляются в начало страницы
(L)Данные от начала до конца страницы отправляются в лог и помечаются как data_inject
Вариант #4. Элементы data_inject и data_after пусты, data_before заполнен:
set_url http://ya.ru/ G(L)
data_before
<title>
data_end
data_inject
data_end
data_after
data_end
Данные после data_before удаляются
(L)Данные после data_before отправляются в лог
Вариант #5. Элементы data_before и data_inject пусты, data_after заполнен:
set_url http://ya.ru/ G(L)
data_before
data_end
data_inject
data_end
data_after
</title>
data_end
Данные перед data_after удаляются
(L)Данные перед data_after отправляются в лог
Вариант #6. Элементы data_before и data_after заполнены, data_inject пуст:
set_url http://ya.ru/ G(L)
data_before
<title>
data_end
data_inject
data_end
data_after
</title>
data_end
Данные между data_before и data_after удаляются
(L)Данные между data_before и data_after отправляются в лог
Вариант #7. Элементы data_inject и data_after заполнены, data_before пуст:
set_url http://ya.ru/ G(L)
data_before
data_end
data_inject
#7
data_end
data_after
</title>
data_end
Данные data_inject добавляются перед data_after
(L)Данные перед data_after отправляются в лог и помечаются как data_inject
Вариант #8. Элементы data_before и data_inject заполнены, data_after пуст:
set_url http://ya.ru/ G(L)
data_before
<title>
data_end
data_inject
#8
data_end
data_after
data_end
Данные data_inject добавляются после data_before
(L)Данные после data_before отправляются в лог и помечаются как data_inject