工具开发 | 子域名爆破的泛解析问题

article/2025/8/5 11:44:40

声明:本人坚决反对利用文章内容进行恶意攻击行为,一切错误行为必将受到惩罚,绿色网络需要靠我们共同维护,推荐大家在了解技术原理的前提下,更好的维护个人信息安全、企业安全、国家安全。

一、什么是域名泛解析

  域名泛化解析是指:利用通配符* (星号)来做次级域名以实现所有的次级域名均指向同一IP地址。在域名前添加任何子域名,均可访问到所指向的IP地址。例如:

(1)常规域名解析

www.wolke.cn   10.10.10.10

(2)域名泛解析

*.wolke.cn     10.10.10.10

访问子域名a.wolke.cn,b.wolke.cn等均指向10.10.10.10

二、为什么要解决子域名泛化问题

在子域名解析中,每个子域名都会解析为一个特定的IP地址。只有被设置解析,用户才能正常进行访问。一旦用户输入错误的子域名,就会造成无法访问。在网站运营中,域名持有者为了避免因为错误输入,而造成用户流失,就会使用泛域名解析。泛域名解析是一种特殊的域名解析方式。它使用通配符形式,设置域名解析。它可以将没有明确设置的子域名一律解析到一个IP地址上。这样,即使用户输入错误的子域名,也可以访问到域名持有者指定的IP地址。

在信息收集中,这会造成请求的所有子域名都能访问的假象,从而收集到一堆无效的子域名。这为我们去做子域名爆破带来了极大的不便,以前子域名爆破常用的是layer子域名挖掘机。不过layer子域名挖掘机在跑具有泛解析的站的时候,就不是那么适用。

三、域名泛解析对抗

f00c459a210859e2f6564c6dcf8c40b0.png

这里以淘宝和百度为例子:ping一个绝对随机不可能存在的域名,它解析了,那么说明它大概率使用了泛解析

(1)淘宝可能存在域名泛解析👇

1c8310de18121fba71a855174804d1c2.png

(2)百度可能不存在域名泛解析👇

70a1d2d2e801081339633b502b2bf8dd.png

针对百度,我们可以直接使用layer子域名挖掘机等子域名爆破工具,而针对淘宝的资产,我们不能使用layer子域名挖掘机等常规工具

1、判断是否使用了泛解析,五次完全随机的域名前缀A记录解析

import asyncio
import aiodns
import randomloop = asyncio.get_event_loop()
resolver = aiodns.DNSResolver(loop=loop)async def query(name, query_type):return await resolver.query(name, query_type)def random_to_A(main_domain):total = []# 随机循环五次for i in range(5):sub_domain = "".join(random.sample('abcdefghijklmnopqrstuvwxyz', random.randint(8, 12)))res = query(sub_domain + "." + main_domain, 'A')result = loop.run_until_complete(res)total.append(result)return totalif __name__ == '__main__':main_domain = input("Please input the main_doamin: ")print(str(random_to_A(main_domain)).replace("],", "],\n"))

  五次完全A记录解析成功,认为存在泛解析,如果不存在泛解析问题,就常规子域名收集一把梭,如果检测出泛解析,就使用破泛解析的子域名爆破工具。

8a9713239c1508cc9b062c5139fd4d5d.png

2、CNAME查询黑名单,维护特定厂商CNAME列表

  CNAME查询几个不存在的淘宝域名,也是一样的思路,循环多次不存在的域名,如果访问不存在的域名,CNAME为shop.taobao.com

66d1952863753d40e8414b78bf3d2226.png

3、A记录查询命中次数,如果A记录查询,命中相同ip>10,后续的爆破A记录解析的域名就不展示记录

0de55860d00351444785a0f33e7c301b.png

四、脚本源码

import asyncio
import aiodns
import random
import optparseloop = asyncio.get_event_loop()
resolver = aiodns.DNSResolver(loop=loop)async def query(name, query_type):return await resolver.query(name, query_type)def random_to_A(main_domain):total = []# 随机循环五次for i in range(5):sub_domain = "".join(random.sample('abcdefghijklmnopqrstuvwxyz', random.randint(8, 12)))res = query(sub_domain + "." + main_domain, 'A')result = loop.run_until_complete(res)total.append(result)return totaldef random_to_cname(sub_domain):res = query(sub_domain, 'CNAME')result = loop.run_until_complete(res)return resultif __name__ == '__main__':parser = optparse.OptionParser("%prog " + "[options] [domain]")parser.add_option('-a', action="store", dest='main_domain', type='string', help='')parser.add_option('-c', action="store", dest='sub_domain', type='string', help='')(options, args) = parser.parse_args()main_domain = options.main_domainsub_domain = options.sub_domainif main_domain:print(str(random_to_A(main_domain)).replace("],", "],\n"))elif sub_domain:print(str(random_to_cname(sub_domain)).replace("<", "\n<"))

原文链接:

https://blog.csdn.net/m0_51468027/article/details/128004275

-END-

▎经典文章精选

渗透测试 | 攻击面信息收集

环境搭建 | CTFd动态靶机搭建笔记

权限提升 | suid提权及修复方式

近源渗透 | 使用Aircrack-ng破解wifi密码

神兵利器 | 自动化钉钉推送主机端口信息!

e9438d17439b964a81d6299b0c060f36.png

扫描下方 二维码 加入我们吧!


http://chatgpt.dhexx.cn/article/WvndX1Zj.shtml

相关文章

如何设置域名泛解析及解决恶意泛域名解析的方法

最近看到很多的博主和站长都发帖讨论关于泛域名解析的问题&#xff0c;也看到过有不少的网站被人做了恶意泛域名解析&#xff0c;本来没打算再研究这个问题&#xff0c;可今天发现公司的一个企业网站也被恶意泛域名解析了&#xff0c;搞了半天&#xff0c;总算把问题给解决了。…

python基础之输入输出语法

博主简介&#xff1a;原互联网大厂tencent员工&#xff0c;网安巨头Venustech员工&#xff0c;阿里云开发社区专家博主&#xff0c;微信公众号java基础笔记优质创作者&#xff0c;csdn优质创作博主&#xff0c;创业者&#xff0c;知识共享者,欢迎关注&#xff0c;点赞&#xff…

python正确的输入语句_python怎么让输入语句

展开全部 1.语句 1.1 语句和表达式有什么区32313133353236313431303231363533e58685e5aeb931333365633936别呢&#xff1f;表达式就是某件事情&#xff0c;而语句是做某件事情&#xff08;即告诉计算机做什么&#xff09;。比如2*2是4&#xff0c;而print2*2则是打印4 1.2 if…

python循环语句打印输出1-10_python 笔记(变量,输入输出,条件语句,循环语句)...

首先了解 python支持一下几种运算符: 算术运算符: 赋值运算符: 复合赋值运算符: 变量 简单的说,变量就是编程中最基本的存储单位,变量会暂时性存储你进去的东西,例如:

python输入输出语句格式化输出字符串

python-输入输出-格式化输出字符串 输入3行字符串&#xff0c;然后对其按照说明进行格式化输出 输入格式: 第1行&#xff1a;一个浮点数字符串 第2行&#xff1a;一个整数字符串 第3行&#xff1a;一个非数值型字符串 输出格式: 对浮点数字符串: 第1行&#xff1a; 保留2位小…

python的选择语句if语句,Python的输入和输出函数(python基础学习5)

python的选择语句if语句&#xff0c;Python的输入和输出函数 if语句1&#xff09;第一种2&#xff09;第二种3&#xff09;第三种 python键盘输入屏幕输出输入input()函数 输出print&#xff08;&#xff09;函数1&#xff09;非格式化输出2&#xff09;格式化输出--%3&#xf…

在python中常用的输入输出语句分别是_python中输入和输出语句的基本使用

一、 input输入函数 input函数:获取用户输入,保存成一个字符串。重要的话,说两遍,input函数的返回值是一个字符串类型。哪怕你输入的是个数字1,返回给你的只会是字符串“1”,而不是 整数1。下面是一些简单的展示例子:>>> inp = input("please input your…

python输入语句-python中输入和输出语句的基本使用

一、 input输入函数 input函数&#xff1a;获取用户输入&#xff0c;保存成一个字符串。重要的话&#xff0c;说两遍&#xff0c;input函数的返回值是一个字符串类型。哪怕你输入的是个数字1&#xff0c;返回给你的只会是字符串“1”&#xff0c;而不是 整数1。下面是一些简单…

python输入语句-python输入语句

广告关闭 2017年12月&#xff0c;云社区对外发布&#xff0c;从最开始的技术博客到现在拥有多个社区产品。未来&#xff0c;我们一起乘风破浪&#xff0c;创造无限可能。 python条件语句目录:1. 分支语句(if...else...)2. 循环(for,while,嵌套循环) #for用在已知循环次数whil…

python3接收用户输入的语句是_python输入语句是什么

python输入语句是“input()”。input()函数可以从标准输入读入一行文本,默认的标准输入是键盘;即读取用户从键盘输入的信息。input()可以接收一个Python表达式作为输入,并将运算结果返回。 本教程操作环境:windows10系统、Dell G3电脑、Python3。 python输入语句是“input(…

6. Python基础:输入输出语句介绍

目录 一、Python程序的输入&#xff1a;input()函数 二、Python程序的输出&#xff1a;print()函数 三、代码实例&#xff1a;计算圆的周长和面积 输入输出语句是Python控制台与用户交互的最基本方式。 一、Python程序的输入&#xff1a;input()函数 输入函数input()&#xf…

python的输入和输出语句

输入语句是input( ) 举个例子 注意的是&#xff0c;输入的如果是数字&#xff0c;那可以直接输入&#xff1b;如果是字母及器组成的字母组合&#xff0c;则要加上单引号或者双引号&#xff01;否则会报错。 输出语句是print( ) 标识符 语法&#xff1a;字母&#xff0c;数字…

python输入输出语句

Python语言是一种面向对象的、高级的程序设计语言&#xff0c;是一个全功能的程序设计语言&#xff0c;其不仅具有强大的解释性、编译性和可移植性&#xff0c;而且还是一个面向对象的、功能强大的程序设计语言。 Python中有许多重要的语句&#xff0c;它们能用于各种目的。这其…

Python -- 基本的输入和输出

文章目录 1. 基于input()函数输入2. 基于print()的函数输出1.1 print&#xff08;&#xff09;函数的标准用法2.1 print&#xff08;&#xff09;函数格式化输出2.1.1 % 操作符2.1.2 format()函数2.1.3 f-strings格式化输出2.1.4 print()函数输出到文件2.1.5 print()函数输出AS…

Linux下内核漏洞利用几种方法,Linux内核漏洞利用(一)环境配置

8种机械键盘轴体对比 本人程序员&#xff0c;要买一个写代码的键盘&#xff0c;请问红轴和茶轴怎么选&#xff1f; 我的实验环境是:Ubuntu 12.04 x86 qemu linux-2.6.32 busybox 1.19.4 安装qemu1$ sudo apt-get install qemu qemu-system Linux内核编译1 2 3 4 5 6 7 8$ wget …

文件操作之文件包含漏洞

目录 本文仅供参考、交流、学习&#xff0c;如有违法行为后果自负 文件包含类型 原理方面 文件包含漏洞原理案例&#xff1a; 必要条件 那么如何去检测漏洞是否存在该漏洞&#xff1f; 白盒 黑盒 类型 本地文件包含 无限制 有限制 远程文件包含 无限制 有限制 …

文件包含漏洞(完整版)

*本文作者&#xff1a;山东安云&#xff0c;转载来自FreeBuf.COM 001 文件包含简介 服务器执行PHP文件时&#xff0c;可以通过文件包含函数加载另一个文件中的PHP代码&#xff0c;并且当PHP来执行&#xff0c;这会为开发者节省大量的时间。这意味着您可以创建供所有网页引用的…

【文件包含漏洞】——文件包含漏洞防御

文章目录 一、实验目的&#xff1a;二、实验环境&#xff1a;三、防御说明&#xff1a;四、防御措施&#xff1a;1. 设置白名单&#xff1a;2. 过滤危险字符&#xff1a;3. 设置文件目录(配置php.ini)&#xff1a;4. 关闭危险配置(配置php.ini)&#xff1a; 五、防御总结&a…

文件包含漏洞-日志注入

文件目录 文件包含漏洞文件包含概述文件包含类型 文件包含-日志注入日志注入概述环境准备配置环境模拟网站环境 日志注入流程 文件包含漏洞 文件包含概述 文件包含漏洞是 Web 应用程序中的一种常见漏洞。当应用程序允许用户控制包含在页面上的文件时&#xff0c;攻击者就可以利…

【异常】BOOT-INF/lib/目录下文件被扫出有漏洞,应该怎么修复?

一、背景说明 客户使用的是阿里云的云服务&#xff0c;阿里云上面的渗透测试扫描会定期对运行在上面的云服务进行漏洞检查&#xff0c;因此没有几轮的漏扫是不会放过你了额。 这次收到了如下的内容 ContainerName:commonprovider, ImageName:commonprovider:V0.2.12_Server_…