dns泛解析及代码测试
发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,0x00 前言在自己的扫描器开发过程中,扫描器当中自然包括了子域名收集功能,但在遇到泛解析的网站时,也增加了扫描器很多不必要的检测,导致效率和资源的浪费。本文中主要针对扫描器遇到的问题进行解决并优化。
千家信息网最后更新 2025年12月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安全错误
数据库的锁怎样保障安全
合肥软件开发收入怎么样
网络安全法的意义包括哪几个
icmp服务器本地存储不可用
服务器cpu家用
数据库服务器与应用程序交互
商务导航软件开发
别克汽车服务器异常
廊坊软件开发厂家价格
延吉市网络安全
信息网络技术专业大学排名
网络安全红蓝对抗思路
数据库连接错误1045
网络技术人员聘用合同
软件开发业务清单
国家网络安全ppt背景照片
上海能远互联网科技有限公司
我的世界1.9.0服务器
靠谱的app软件开发项目
大数据局网络安全应急预案
苹果数据库安全吗
宜兴通用软件开发配置
药学文献全文检索数据库
公安计算机网络安全管理规定
服务器地址改了重启后又变回来了
软件开发行业缺人
软件开发工作量与代码行数
网络技术支持职业描述
20名网络安全先进典型
多点软件开发商
数据库 变长字符串类型