DNS一个广告劫持(属于DNS污染)(图)

优采云 发布时间: 2021-08-14 19:01

  DNS一个广告劫持(属于DNS污染)(图)

  DNS广告劫持(属于DNS污染)

  事实上,这并不是一个新概念。几年前,国内一些*敏*感*词*的运营商,尤其是本土运营商,开始抓取用户浏览器访问记录,然后根据不同用户的访问行为做出选择。向用户访问的网页推送广告。因为运营商控制了DNS主机,他们可以随意强行改写网站HTML页面,并通过在返回页面中写入JavaScript来注入广告:这是一些用户访问55BBS网站时,他们会在屏幕上我看到右下角京东商城的广告。这样的广告不仅可以在一些中小网站上看到,在国内的大型网站上也能看到。很多网友会立刻怀疑自己的机器有病毒或木马,或者是一些恶意的浏览器插件造成了麻烦。其实这就是运营商的鬼魂。

  有些用户会坚决投诉。运营商有自己的白名单。投诉成功后,用户将帐号加入白名单,停止投放广告。显然他们不想惹太多麻烦,这种恶心的事情需要暗中进行。

  IIS7网站监控工具可以提前防范各种网站劫持,是一款免费在线查询,适用于各大站长、政府网站、学校、公司、医院等网站。他可以24小时定时监控,同时可以让你知道网站是否被黑、被黑、改标题、被黑、被劫持、被围墙、DNS是否被污染。独家检测网站真实全开时间,作为站长的你,一目了然网站健康状况!

  官方地址:IIS7服务器管理工​​具

  官方图片

  

  

  另一方面,很多本地运营商会在用户协议中加入DNS劫持后注入广告的行为,让用户无话可说。比如北京联通以前提供不同的收费服务,一种是不带广告的,一种是注入广告的,不带广告的价格当然更高。

  2010年,青岛联通也因此类劫持败诉,引起轩然大波,被百度*敏*感*词*20万元。索赔金额显然是小事,但对于中国互联网的成熟,仍具有积极意义。在中国,你可以选择的经营者只有几个,就像从一堆你能承受的烂苹果中挑一个。而且,行业本身缺乏道德和健全的法律约束,仅靠个人用户投诉和投诉并不能从根本上解决流氓行为。这可能是互联网不成熟发展带来的不可避免的痛苦。

  技术实现

  理论上,运营商拥有HTML页面的所有代码,它可以做任何事情,真正无缝地插入广告,然后将其返回给用户。但是,这种广告的投放是批量行为。如果要为不同的网站页面单独设置广告代码,成本有点太高了。另一方面,嵌入的 JavaScript 代码片段容易受到不同 DOM 环境和 JavaScript 代码环境本身的影响,嵌入的广告无法影响原创网站 页面的显示和行为。为了尽量减少植入广告对原创网站页面的影响,运营商通常会将原创网站页面放置在与原创页面大小相同的iFrame中,并通过iFrame隔离广告代码对。原页面的影响。由于不同用户的某些访问会发生这种劫持,所以我的例子不够方便。为了让大家100%观察这个效果,我找了这样一个联通提示页面作为例子:

  访问不存在的网站时,比如随便填一个域名,以北京联通为例,不会直接返回错误码,而是会跳转到这样的错误提示页面:

  重定向的 URL 为:8080/issueunziped/bj130404/self0.jsp?UserUrl=

  这种行为可能不会引起太多批评。毕竟这样的域名是不存在的,对用户和站长影响不大。不过请注意左下角和右下角的广告。它注入广告的方式和嵌套的iFrame与我上面提到的劫持行为完全相同。

  现在请将上述网址的self0.jsp改为index.htm,即:

  :8080/issueunziped/bj130404/index.htm?UserUrl=

  你可以看到这样的页面:

  刚才提到的广告不见了,对吧?

  你可以把页面index.htm想象成网站的一个原创页面,然后操作者新建这样一个新页面,并以iFrame的形式嵌入原创页面:

  你可以把页面index.htm想象成网站的一个原创页面,然后,操作者创建这样一个新页面,并以iFrame的形式嵌入原创页面:

  这样就可以在这个新页面继续写代码,引入广告了:

  如何破解?

  既然知道了原理,就很容易想到解决办法了。对于这种劫持,有一个共同的特点,就是原来的网站页面都放在一个iFrame中,那么只需添加这样一个脚本来判断页面是否加载到一个iFrame中,让父页面重定向到原页面:(IP地址不同!)

  if(top!==self)

  top.location.href=this.location.href;

  当然,您也可以重定向到您认为可靠的链接,甚至添加您需要的参数和其他信息(例如运营商添加的广告代码的网址)来记录*敏*感*词*。

  多说几句

  这种劫持手段还是比较原创和泛滥的,这些利用iFrame实现DNS劫持的运营商还是有些良心的,因为对原页面的影响很小,但是也有一些本地运营商只是去简单的写在很多情况下,将javascript代码添加到原创页面会影响原创页面的显示和行为。这时候问题就麻烦多了。

  首先,我们需要获取这个行为的具体信息。一种方法是掌握页面的原创JavaScript方法、DOM对象列表或浏览器请求的域名列表(类似于白名单)。如果您发现列表之外的未知方法、DOM 对象的引入或对意外 URL 的请求,请将此类信息发送到服务器进行分析。

  比如页面被强制注入这样的代码:

  document.write("");

  我们可以用一个小技巧来处理,比如JavaScript劫持:

  document.write = function(){};

  让document.write方法变成空函数,使注入代码的行为失效。当然,具体问题还是要具体分析,重要的是掌握信息。但话虽如此,我们只是程序员。我们创建的是原创页面。在恶意操作者手中,以技术手段,我们的力量还是太小了。

  另外,中国联通的广告系统也太缺乏保护了。只要随便更改链接,就会暴露Tomcat版本号等信息。如果有人真的想做某事...

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线