|
|
|
联系客服020-83701501

小谈DNS劫持

联系在线客服,可以获得免费在线咨询服务。 QQ咨询 我要预约
小谈DNS劫持

想谈1谈这个话题是由于近来有1位伴侣诉苦他的博客在某些用户某些时辰接见的时辰,被莫名其妙地加之了广告,他查抄来查抄去,始终缔造不了网站自身有什么题目,后来他才熟谙到了DNS劫持1说。

DNS劫持

实在这不是1个新观点了,在几年前,中国1些不讲人品的经营商,尤其是中央经营商就初步捕捉用户浏览器的接见纪录,然后遵循差别用户的接见举止,有决定地往用户接见的网页外观推送广告。由于经营商掌握着DNS主机,以是他们大约轻车熟路地强迫改写网站HTML页面,采纳往前往页面里写入JavaScript等方法,来注入广告:

DNS劫持

这是接见55BBS网站时某些用户会在屏幕右下角看到1个京东商城的广告。如许的广告,不但大约在1些中小网站上见到,在海内大型网站上也屡见不鲜。很多网民会立即怀疑自身的凝滞有不有中病毒或许木马,或许是什么歹意的浏览器插件又在捣乱。实在,这凡是经营商搞的鬼。

有的用户会拘泥地传颂,经营商有自身的白名单,用户在传颂腐烂当前会账号被列入白名单,不再投放广告。清楚明明他们也不想惹过量的贫困,如许恶心的事故必要偷偷地干。

另1方面,很多中央经营商会把如许的DNS劫持后注入广告的举止列入到用户和谈中去,让用户无话可说。比方北京联通就已经提供了差别的免费管事,1种是无广告的,1种是包含注入广告的,价格固然是无广告的更高。

在2010年的时辰,由于如许的劫持举止,青岛联通还在1场引起轩然大波的索赔案件中败诉,被罚20万元给百度。索赔从金额来看清楚明明是小事,可是对于中国互联网的冲弱还是有被动意思的。在中国,你大约决定的经营商就那么几个,就比方从1堆烂苹果中筛选1个自身能忍耐的。而且这个行业自身就不敷人品和完善的法则约束,单单靠用户个体诉苦和传颂,无法从根蒂根本上图谋地痞举止。这或是是互联网倒退不敷冲弱的1个弗成隐匿的阵痛。

技艺实现

理论上说,经营商掌握了HTML页面的全部代码,它大约做任何的事故,真正无缝地植入广告,然后返还给用户。可是,这种广告的植入是批量的举止,假设要针对差别的网站页面别离去设置广告代码,代价未免太高了1点。另1方面,植入的JavaScript代码片段很烦复受接事别DOM状况和JavaScript代码状况自身的影响,而植入广告,不克不及影响到原有网站页面的显示和举止。为了尽或是地减少植入广告对原有网站页面的影响,经营商个认识经由把原有网站页脸部署到1个和原页面类似大小的iFrame外观去,经由iFrame来隔离广告代码对原有页面的影响。由于如许的劫持举止会针对差别用户的某些接见产生,我举例不敷恣意,为了让自己或是100%地考察到这个成果,我找了如许联通的提示页面来举例:

在接见不存在的网站的时辰,比方www.九1ri.org如许乱填写的域名,以北京联通为例,它并不会直接前往舛讹码,而是重定向到如许1个舛讹提示页面:

DNS劫持

这个重定向后的URL为:http://bjdnserror1.wo.com.cn:8080/issueunziped/bj130404/self0.jsp?UserUrl=www.adfasdfasdfasdf.cn

如许的举止招来非议的人或是不多,毕竟如许的域名几近不存在,对用户和站长带来的影响不大。可是,请把稳它左下角和右边的广告,在这里它注入广告的方法,采纳的iFrame嵌套的方法,和下面我提到的劫持举止,是完全1致的。

现在请将上述URL的self0.jsp改为index.htm,也就是:

http://bjdnserror1.wo.com.cn:8080/issueunziped/bj130404/index.htm?UserUrl=www.adfasdfasdfasdf.cn

你大约看到如许的页面:

DNS劫持

方才提到的广告不有了,对舛误?

你大约把index.htm这个页面设想成1个网站的原始页面,然后,经营商创建了如许1个新页面,而把原始页面以iFrame的模式嵌入到其中:

Default
1234 <IFRAME id="fulliframe" name="fulliframe" frameSpacing=0 noResize height=1350 marginHeight=0 border=0 src="" frameBorder=0 width="100%" scrolling=no vspale="0"></IFRAME><script language="JavaScript" type="text/javascript">    frames['fulliframe'].location = window.location.href.replace('self0.jsp','index.htm');</script>

如许1来,便大约持续往这个新页面外观写代码,引入广告了:

Default
1 <script src="/uploads/allimg/191022/095AQ028-5.jpg" type="text/javascript"></script>

Default
1 <script language="JavaScript" type="text/javascript" src="bdfloat.js"></script>

怎么破?

既然已经知道了原理,那么人造就烦复想到图谋的举措。对于这1类劫持,有1个共同共性是,原有网站的页面,凡是放在1个iFrame外观的,那么只有加之如许的脚本,武断假设页面因而1个iFrame加载的,就让父页面重定向到原页面去:

Default
12 if(top!==self)    top.location.href=this.location.href;

固然,你也大约重定向到1个你以为可靠的链接上来,致使加之你必要的参数等等新闻(比方经营商添加的广告代码URL),以纪录这1罪证。

多说几句

这种劫持方法还显得原始和粗放,而且这些采纳iFrame方法实现DNS劫持的经营商还算有1些本意天良,由于对原有页面的影响较小,可是另有1些中央经营商,只是往原始页面隧道地写入javascript代码,很多状况下农村影响到原始页面的显示和举止,这时辰题目就显得贫困得多了。

首先我们必要失掉这种举止的具体新闻,1种举措是你掌握1个页面原有的JavaScript方法、DOM工具列表,或许是浏览器乞请的域名列表(沟通于1个白名单),假设缔造列表以外的未知方法、DOM工具的引入,或许是预期以外的URL的乞请,把如许的新闻发送到管事端去解析。

比方,页面被强迫注入了如许的代码:

Default
1 document.write("<script language='javascript' src='http://www.九1ri.org'></script>");

我们大约用1点小本事来迁就,比方JavaScript劫持:

Default
1 document.write = function(){};

让document.write方法变成1个空函数,让注入代码这1举止收效。固然,具体题目还是必要具体解析,紧要的是掌握新闻。可是话说返来,我们只是程序员,我们创举的是原始页面,在歹意的经营商手里,靠技艺层面的本事,我们的力气还是过小了。

此外,联通的这个广告系统做得太不敷爱崇性了,只有利便改1改链接,Tomcat版本号等等新闻就裸暴露来了,如阴郁要有人想做点什么的话……

DNS劫持

九1ri.org:劫持用户的DNS真的。。很不人品,而且很烦复引起平安题目,比方:http://www.wooyun.org/bugs/wooyun-2010-018878

link:http://www.raychase.net/1358

本文由网络平安攻防研讨室(www.九1ri.org)新闻平安小组收集整理,转载请阐明来由。

数安新闻+更多

证书相关+更多