Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

не могу понять что делает код

290
03 июля 2015 года
Patr1ot
458 / / 09.02.2008
приветствую.

прошу помочь раскурить код, что он делает?

Код:
setTimeout(function(){
        var t,r,a,f, fKSBadi={"piBCBDQ":+((!+[]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]))};
        t = document.createElement('div');
        t.innerHTML="<a href='/'>x</a>";
        t = t.firstChild.href;r = t.match(/https?:///)[0];
        t = t.substr(r.length); t = t.substr(0,t.length-1);
        a = document.getElementById('jschl-answer');
        f = document.getElementById('challenge-form');
        ;fKSBadi.piBCBDQ+=+((!+[]+!![]+!![]+!![]+[])+(+[]));fKSBadi.piBCBDQ-=+!![];fKSBadi.piBCBDQ+=+((+!![]+[])+(+[]));fKSBadi.piBCBDQ*=+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]));a.value = parseInt(fKSBadi.piBCBDQ, 10) + t.length;
        f.submit();
      }, 4000);
    }, false);
Заранее благодарен за любую помощь.
327
04 июля 2015 года
UserNet2008
748 / / 03.04.2010
Ну если в два слова то примерно так
Получаем href
Потом идут "Регулярные выражения" типа обрезания or вытянуть
Потом что-то делаеться с длиной переменой из innerHTML
Потом типа поиск чевота два раза в DOM (jschl-answer - challenge-form)
А вся Кухня в этом
 
Код:
fKSBadi={"piBCBDQ":+((!+[]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]))};
fKSBadi.piBCBDQ+=+((!+[]+!![]+!![]+!![]+[])+(+[]));
fKSBadi.piBCBDQ-=+!![];
fKSBadi.piBCBDQ+=+((+!![]+[])+(+[]));
fKSBadi.piBCBDQ*=+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]));
a.value = parseInt(fKSBadi.piBCBDQ, 10) + t.length;
Это есть типа секретнный код , который add к запросу.
(и этот секретнный код должен соотвственно совпадать на сервере т.к на сервере стоит тот-же механизм)
Потом задержка 4sec
290
04 июля 2015 года
Patr1ot
458 / / 09.02.2008
все бы ничего, я вижу что href подсовывается https, значит должен быть url домена но я не вижу его в коде, при чем реализованно как то так, что снифером не ловится. При отправке учетных данных сервер выкидывает 503 ошибку но до ошибки кидает вот этот код. после чего яваскрипт его обрабатывает и выполняется вход, НО СНИФЕРОМ обнаруживается только первичных вход когда получили 503 ошибку. Не глубоки мои познания в JavaScript можете пример более детально разобрать этот код? Мне надо понять как он формирует url с параметрами для перехода.
290
04 июля 2015 года
Patr1ot
458 / / 09.02.2008
А еще вопрос в строке
 
Код:
fKSBadi.piBCBDQ*=+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]));
Получается к тектсту в fKSBadi.piBCBDQ прибавляется текст ((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]))?
290
04 июля 2015 года
Patr1ot
458 / / 09.02.2008
В целом весь код выглядит так:

Код:
<script type="text/javascript">
  //<![CDATA[
  (function(){
    var a = function() {try{return !!window.addEventListener} catch(e) {return !1} },
    b = function(b, c) {a() ? document.addEventListener("DOMContentLoaded", b, c) : document.attachEvent("onreadystatechange", b)};
    b(function(){
      var a = document.getElementById('cf-content');a.style.display = 'block';
      setTimeout(function(){
        var t,r,a,f, fKSBadi={"piBCBDQ":+((!+[]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]))};
        t = document.createElement('div');
        t.innerHTML="<a href='/'>x</a>";
        t = t.firstChild.href;r = t.match(/https?:///)[0];
        t = t.substr(r.length); t = t.substr(0,t.length-1);
        a = document.getElementById('jschl-answer');
        f = document.getElementById('challenge-form');
        ;fKSBadi.piBCBDQ+=+((!+[]+!![]+!![]+!![]+[])+(+[]));fKSBadi.piBCBDQ-=+!![];fKSBadi.piBCBDQ+=+((+!![]+[])+(+[]));fKSBadi.piBCBDQ*=+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]));a.value = parseInt(fKSBadi.piBCBDQ, 10) + t.length;
        f.submit();
      }, 4000);
    }, false);
  })();
  //]]>
</script>
в конце отправляет вот эту форму:
 
Код:
<form id="challenge-form" action="/cdn-cgi/l/chk_jschl" method="get">
    <input type="hidden" name="jschl_vc" value="07c69e2c277d7c2f74353eb560bcb74a"/>
    <input type="hidden" name="pass" value="1435952215.999-wZFS7TiD0u"/>
    <input type="hidden" id="jschl-answer" name="jschl_answer"/>
  </form>
вопрос на какой url он это отправляет, ну и более наглядный алгоритм как он формирует секретный код
290
04 июля 2015 года
Patr1ot
458 / / 09.02.2008
А как вот этот код считать?
 
Код:
+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![]))
понял что !![] дает число 1, +[] = 0 но там еще условиности типа стоит ли в начале !+[] если да то ноль прибавляется.
че это за числовые выражения такие есть где нибудь аббревиатура на это?
7
04 июля 2015 года
@pixo $oft
3.4K / / 20.09.2006
У меня для тебя плохие новости — ты столкнулся с обфусцированным кодом. Поэтому или меняй его, чтобы смотреть промежуточные значения, или отлаживай с той же самой целью.
Вообще, мне искренне непонятно, почему ты снифером не может окончательный URL перехватить.
290
04 июля 2015 года
Patr1ot
458 / / 09.02.2008
Печалька, а я думаю почему нигде инфы по нему нету)).

Не знаю сниффер не показывает переход get который в этом коде.
все записи пересмотрел.

На счет этого кода. Придется костыли лепить. По крайней мере выяснил что чему равно))
+!![] = 1
!+[] = 1
(+[]) = 0

понял кароч как это дело щитается, осталось на С++ реализовать вычисление.
327
04 июля 2015 года
UserNet2008
748 / / 03.04.2010
Для начало я Вам поставил +1 , я изгой на этом сайте мне минусы как на УРА.
Теперь по теме
Есть строка :
 
Код:
t.innerHTML="<a href='/'>x</a>";
Так вот Х и есть бадъя , почему снифером не ловится. От куда брать Х, по ходу Х - Это есть функция.
Теперь другое есть
Цитата:
На счет этого кода. Придется костыли лепить. По крайней мере выяснил что чему равно))
+!![] = 1
!+[] = 1
(+[]) = 0

Почему так~
Здесь есть подсказка

 
Код:
a.value = parseInt(fKSBadi.piBCBDQ, 10) + t.length;
Это "Регулярные выражения"
Что-то мне думы пришли хост-free и Вам нужно жить по правилом free.
Такую 503 ошибку можно эмулеровать введу не хватки мощъности сервера.
290
05 июля 2015 года
Patr1ot
458 / / 09.02.2008
А все всем спасибо. Научил парсер считывать значения (+((!+[]+!![]+!![]+[])+(!+[]+!![]+!![]+!![]+!![])) ) Не вижу смысла обфусцировать код в javascript)))) он все равно выполняется на стороне клиента, а значит его работу все равно можно понять.
290
05 июля 2015 года
Patr1ot
458 / / 09.02.2008
Цитата: @pixo $oft
У меня для тебя плохие новости — ты столкнулся с обфусцированным кодом. Поэтому или меняй его, чтобы смотреть промежуточные значения, или отлаживай с той же самой целью.
Вообще, мне искренне непонятно, почему ты снифером не может окончательный URL перехватить.

Сниффером я увидел get только когда после post запроса до 503 ошибки получил контент, затем этот контент запустил отдельно в браузере. Вот только тогда я этот get и поймал сниффером. По другому он не отображается

7
06 июля 2015 года
@pixo $oft
3.4K / / 20.09.2006
Вот видишь, просто нужно было нужный момент поймать. Ну и да, т.к. код на стороне клиента выполняется, в целом его не так сложно заставить работать на себя ;-)
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог