dns泛解析及代码测试
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,0x00 前言在自己的扫描器开发过程中,扫描器当中自然包括了子域名收集功能,但在遇到泛解析的网站时,也增加了扫描器很多不必要的检测,导致效率和资源的浪费。本文中主要针对扫描器遇到的问题进行解决并优化。
千家信息网最后更新 2026年11月01日dns泛解析及代码测试
0x00 前言
在自己的扫描器开发过程中,扫描器当中自然包括了子域名收集功能,但在遇到泛解析的网站时,也增加了扫描器很多不必要的检测,导致效率和资源的浪费。本文中主要针对扫描器遇到的问题进行解决并优化。
泛域名解析介绍 https://baike.baidu.com/item/%E6%B3%9B%E5%9F%9F%E5%90%8D%E8%A7%A3%E6%9E%90/9845966?fr=aladdin
0x01 问题产生
泛解析的功能为厂商提供了便利,但为自动化扫描带来了麻烦,什么麻烦呢?这里以一个使用了泛解析的厂商作为演示
由于该网站使用了泛解析,导致原本不存在的子域名也会成功被解析,那么其实访问这个域名,会重定向到主页

那么在自动化扫描中,通常我们会使用到一个字典组合域名的方式,然后进行dns解析,如果成功解析说明子域名存在,利用这种方式来进行子域名穷举,但使用泛解析的话,则会导致所有的域名都能成功解析,使得子域名穷举变得不精准。
ps:只是一个泛解析测试
0x02 解决方法
那么怎么去判断域名使用了泛解析和如何解决扫描器中遇到这种情况呢?
泛解析的域名会自动匹配所有*.域名的解析,利用这点我们可以故意去解析一个根本不可能存在的域名,如果能成功解析代表使用泛解析,否之未采用
- 扫描器解决思路也同上点,附上演示过程,(具体代码最后贴)
上图中可以看到,如果能成功解析不存在的域名则使用泛解析,那么socket.getaddrinfo也不会抛出异常
那么改进后的检测代码为
import socketimport sysdef dns_resolve(domain): url = 'abc1q2w3e4r5t.' + domain flag = False #抛出异常说明使用了泛解析 try: socket.getaddrinfo(url, None) flag = True except: pass if not flag: print('[+] %s 未采用泛解析'%domain) else: print('[-] %s 采用泛解析'%domain)if __name__ == '__main__': if len(sys.argv) < 2: print('python3 %s '%sys.argv[0]) exit(1) dns_resolve(sys.argv[1]) 0x03 tips
- 当域名使用了泛解析,那么放弃穷举的方式来获取子域名,可通过其他途径,类似爬虫或者搜索引擎来获取
- 如有错误,请斧正
域名
扫描器
子域
成功
方式
代码
功能
厂商
网站
过程
问题
麻烦
检测
演示
自动化
测试
精准
上图
主页
代表
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
咖啡豆
互联网科技企业
广东猪兼强互联网科技有限公司
科技创新与互联网经济
互联网科技公司税收优惠
金融科技还是互联网
互联网科技有限公司图片
为想互联网科技
伴你行互联网科技有限公司
互联网科技美容
亿人帮互联网科技
大白互联网科技
甘肃拓世互联网科技有限公司
云创客互联网科技公司
温州喔噻互联网科技有限公司
互联网科技寓意
成都互联网科技公司100强
互联网科技商业
青海科技产业互联网发展
无锡工业互联网科技有限公司
互联网中国科技
北京互联网科技公司
友谊互联网络科技
猫创互联网科技
互联网科技宣传片
互联网汽车科技小镇
湖南一路畅行互联网科技
抖集互联网科技技术咨询
互联网科技机房
兰石爱特工业互联网科技分公司