- N +

见缝插针:DNS泛解析是怎么被黑客玩坏的

  网络创立之初,所有的访问都是通过IP地址来实现的,因web等协议与应用的兴起,有了域名,再通过IP去访问一方面不太容易记,另一方面因负载、CDN等方面的原因,单纯使用IP地址访问会带来一些问题。因此域名产生了,通过域名访问,中间设备只认识IP,因此最终还是解析到相应的IP地址去访问。

  DNS的创造是网络大师的一大杰作,通过DNS广大网民可以通过域名来访问相应的网站。这样只需要记住域名就可以了,不需要记住繁琐的IP地址。如我们经常访问的,其DNS解析过程如下:

  上图可以看到,DNS的解析非常轻巧,使用UDP 协议,一个DNS查询包,一个响应包,两个包搞定,简洁轻巧,效率高。

  但是在实际过程中经常会遇到一个问题:输入域名的时候如,一不小心多输入一个w变成w,这样的话,可以正常解析吗?我做了一下实验,在浏览器输入w,浏览器直接报错“无法访问此网站”。

  我们来看看DNS的解析流程,客户端进行了一次DNS查询,DNS服务器查询以后返回一个结果“NO such name A w”,可以看到DNS服务器进行查询后,查找不到这样的结果。

  原因很简单,DNS没有相应的配置,但是在现实中,肯定经常存在用户输入错误域名前缀的情况,如果网站服务方考虑的足够人性化,完全可以配置一个DNS解析记录,配置一个默认解析结果。在DNS实现中,的确有这样一套机制,这个称作DNS泛解析。

  既然有DNS泛解析这样一套机制,在实际生活中肯定会存在相应的应用。那么我们来亲测一下,首先拿google开刀,随机输入一个子域名看看能不能正常解析,解析不了;再测试一下度娘,也解析不了。

  两大寡头都不支持泛解析,继续找下小站,公司渗透大牛很不屑的扔给我一批开了泛解析的域名,随便测试一个,可以解析到主站的IP上。

  的确存在!上图中的泛解析是解析到主站的IP,如果泛解析的IP被解析到其他的IP,或者是黑客的IP呢?

  的确,在实际工作中多次遇到这种情况。前天发现一政府的门户网站通过度娘搜索子域名时,搜索到301000个站点,并且有很多子域名都跳转到博彩网站。

  通过ping测试,发现主站解析到61.191.*.*,而泛解析却被解析到23.105.65.113,这个IP是美国的IP。DNS的泛解析结果肯定被黑客恶意修改了。

  既然被DNS被泛解析到恶意的IP,并且有这么多解析记录,那么用户为什么一直没有发现这个问题?这令我百思不得其解。直到有一次在浏览器中输入一个随机子域名访问时,竟然跳转到正常主站页面上去了。

  既然可以在博彩与正常主站之间跳转,那么在23.105.65.113这个页面肯定存在一个判断的条件,触发这些条件时跳转到博彩网站,没有触发时跳转到正常页面。一般情况下,都是通过JS来做识别和跳转的,这样只要过滤相应的JS脚本即可,直接分析23.105.65.113页面源码,过滤 src= 果然找到相应的JS脚本。

  看一下这个js内容,判断条件很简单,http的包头referrer字段,只要referrer字段中有c或者n就跳转到否则就跳转到。这样的话就解释了直接打开随机子域名跳转到正常页面而通过百度搜索时跳转到博彩页面的疑问。如果通过直接访问随机子域名会跳转到主站页面,不容易被管理人员发现,但是通过搜索访问时会有referrer字段,只要字段中有c或者n就会跳转到博彩网站。

  注:因截图时,相关网站的DNS泛解析已被关闭,所以截图测试的的是主站。但是原理是一样:通过搜索引擎搜索时都会带有referrer字段,直接访问时不会带有referrer字段。

  另外,黑客为什么设置带有c或者n时作为判断跳转的条件,一般情况下都通过搜索查找相应子域名时,referrer都会带有者样的字段,c和n比较容易触发跳转条件。

  初次碰到这种情况时,首先怀疑是的网站被黑,访问相关子域名时跳转到博彩网站,后来再仔细看了下,用户不可能注册这么多的子域名,后来才注意到DNS解析结果的变动。

  可见,DNS泛解析是一把双刃剑,配置好的话可以提高用户体验,配置不好的话很容易被黑客利用。另外,经常遇到过运营商在DNS里做过手脚,当用户输入不存在的域名时都会跳转到他们设置好的游戏、搜索类网站。

返回列表
上一篇:
下一篇:
评论列表 (暂无评论,共551人参与)

还没有评论,来说两句吧...

发表评论

验证码