本Web安全基础推文系列旨在以平白的语言讲解漏洞原理,文章多数内容为我本人的学习笔记与总结,汇总供大家参考。

1 什么是泛解析?

在子域名解析中,每个子域名都会解析为一个特定的IP地址。只有被设置解析,用户才能正常进行访问。一旦用户输入错误的子域名,就会造成无法访问。

在网站运营中,域名持有者为了避免因为错误输入,而造成用户流失,就会使用泛域名解析。比如用户输入123.baidu.com,能正常访问到www.baidu.com。
泛域名解析是一种特殊的域名解析方式。它使用通配符形式,设置域名解析。它可以将没有明确设置的子域名一律解析到一个IP地址上。这样,即使用户输入错误的子域名,也可以访问到域名持有者指定的IP地址。
通过过cmd命令行,ping该站点,确实印证了域名不同却指向了同个ip。

此处还有一个知识点,即CDN的存在,a.shifen.com(CDN我们下篇文章解释)

2 如何判断是否开启了泛解析?

输入一个“模糊”域名,确定能正确解析,则说明该站点开启了泛解析。
比如打开cmd,ping一个站点,输入的是 wwww.baiud.com。很明显,这个输入多了一个w,与正常的域名不符,但ping该域名过程却能正常返回ip地址,说明该站点开启了域名泛解析。

3 Solution:IP 黑名单

目前最常见的解决方式是IP黑名单的方式。
首先访问一个随机的并不存在的域,通过返回的结果判断是否存在泛解析。确定存在泛解析后,(脚本实现)不断地生成随机域名并发送请求,将每次返回的IP和TTL记录下来,直到大部分的IP出现次数都大于两次,则IP黑名单收集完成。
而后使用域名字典进行爆破,爆破过程中根据IP黑名单进行过滤,同时比较TTL,在泛解析记录中TTL是相同的,如果TTL不相同,则不是泛解析记录。
这样就成功地过滤了那些爆破之后存在的泛解析域名。

4 总结

最近也是疯狂让自己忙起来的状态,很多事情搞得自己不开心。

Anyway, Suffering still persists, but blossoms too can’t resist.

参考资料