DNS 重绑定漏洞原理

1. 攻击原理:两次 DNS 解析的“重绑定”

DNS 重绑定攻击的核心在于“两次”“重绑定”这两个关键步骤

第一步:第一次 DNS 解析(公网地址)

  1. 攻击者准备: 攻击者控制一个恶意域名,例如 rebind.attacker.com,并在其 DNS 服务器上配置该域名
  2. 用户访问: 用户在浏览器中访问一个恶意网站,该网站包含一个加载 rebind.attacker.com 资源的脚本
  3. DNS 解析: 浏览器向 DNS 服务器请求解析 rebind.attacker.com
  4. 恶意响应: 攻击者的 DNS 服务器返回一个正常的公网 IP 地址(例如 1.1.1.1)和一个非常短的 TTL(Time-to-Live)值,比如 10 秒
    • TTL 是 DNS 记录的有效期,它告诉浏览器在 TTL 时间内可以缓存这个解析结果。很短的 TTL 值是攻击成功的关键
  5. 建立信任: 浏览器接收到公网 IP 后,与 rebind.attacker.com建立连接,加载恶意脚本。此时,浏览器认为该脚本是安全的,因为它来自一个公网域名

第二步:第二次DNS解析(内网地址)

  1. TTL 过期: 恶意脚本被加载后,会等待一个比 TTL 值稍长的时间(例如 12 秒)
  2. 发起请求: 脚本向同一个域名 rebind.attacker.com 发起一个新的请求(例如,一个 AJAX 请求)
  3. 重新解析: 由于第一次的 DNS 记录已经过期(TTL 超时),浏览器会再次向 DNS 服务器请求解析rebind.attacker.com
  4. 重绑定: 这一次,攻击者的 DNS 服务器不再返回公网 IP,而是返回一个内网 IP 地址(例如 192.168.1.1
  5. 绕过策略: 浏览器接收到这个内网 IP 后,由于它认为这个新的请求仍然来自“同源”的 rebind.attacker.com,而其解析结果却是内网 IP,浏览器会认为该请求是合法的,并将其发送到内网地址192.168.1.1
  6. 攻击成功: 此时,恶意脚本已经成功绕过同源策略,可以直接访问和控制内网中的设备,如路由器、摄像头或打印机
Copyright © 版权信息 all right reserved,powered by Gitbook该文件修订时间: 2025-09-25 03:13:24

results matching ""

    No results matching ""