dns泛解析及代码测试
发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,0x00 前言在自己的扫描器开发过程中,扫描器当中自然包括了子域名收集功能,但在遇到泛解析的网站时,也增加了扫描器很多不必要的检测,导致效率和资源的浪费。本文中主要针对扫描器遇到的问题进行解决并优化。
千家信息网最后更新 2025年01月20日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安全错误
数据库的锁怎样保障安全
数据库系统而言 主要
洛江区服务器维修
网络安全云计算股票
数据库如何去最大值
南京网络安全审计系统咨询辅导
ftp服务器 迅雷下载
手机万方数据库免费账号
华为鹏霄服务器生产线
网络安全的技术总结
云之讯网络技术
计算机网络技术高级技工证
数据库使用的芯片上市公司
app请求服务器接口超时
计算机网络技术相关专业
pdf数据库原理及应用教程
中国人口结构数据库
重庆管理软件开发要多少钱
小学生的网络安全标语
桐梓县网络安全
揭阳游戏软件开发
广东省深圳市网络安全中心
网络技术活动策划
海归求职软件开发
金融数据库的选择
数据库找不到控制器
camera图片数据库
海致网络技术有限公司官网
济南浪潮服务器店面电话多少
广联达软件开发架构设计
北京网络安全通讯板卡