浅谈DNS重绑定攻击
字数 1261 2025-08-10 23:41:58

DNS重绑定攻击详解

一、DNS重绑定攻击简介

DNS重绑定攻击(DNS Rebinding Attack)是一种利用DNS解析机制和浏览器同源策略漏洞的攻击手段。攻击者通过控制DNS服务器,使同一个域名在不同时间解析为不同的IP地址,从而绕过同源策略限制,实现对内网或其他受限资源的访问。

二、核心概念解析

1. 同源策略(Same Origin Policy, SOP)

  • 定义:由Netscape公司1995年引入浏览器的安全机制
  • 作用:限制不同源的脚本相互访问资源
  • 同源判定标准:协议、域名、端口三者完全相同
  • 重要性:防止XSS、CSRF等攻击的基础安全机制

2. TTL(Time To Live)

  • 定义:DNS记录在DNS服务器上的缓存时间
  • 特点
    • 数值越小,修改记录生效越快
    • TTL=0表示不缓存,每次都需要重新查询
  • 攻击利用:攻击者设置TTL=0使DNS记录不被缓存

3. 域名解析过程

  1. 浏览器检查自身DNS缓存
  2. 检查操作系统DNS缓存(TTL未过期则使用)
  3. 发起DNS系统调用(迭代查询):
    • 运营商DNS → 根域名服务器 → 顶级域名服务器 → 二级域名服务器
  4. 获取IP后建立连接通信

三、攻击原理与流程

攻击核心思想

利用DNS解析结果可变性,使同一域名在不同时间解析为不同IP地址,绕过同源策略限制。

攻击场景一:直接攻击内网

  1. 第一次解析

    • 受害者访问恶意链接(如钓鱼邮件)
    • 浏览器查询www.attack.com
    • 攻击者DNS返回真实IP(如97.126.54.33),TTL=0
  2. 首次访问

    • 浏览器加载攻击者服务器内容
    • 页面包含恶意JS代码,反复向www.attack.com发送POST请求
  3. 第二次解析

    • 由于TTL=0,缓存失效,浏览器重新查询
    • 攻击者DNS返回内网IP(如192.168.0.1)
  4. 攻击实施

    • 浏览器认为同源,向内网设备发送恶意请求
    • 实现对内网设备的攻击

攻击场景二:通过外网下载恶意文件

流程与场景一类似,区别在于:

  • 第二次解析返回的是攻击者控制的外网IP
  • 通过下载恶意文件控制受害者主机

四、防御措施

1. DNS层面防御

  • 监控和过滤TTL=0的异常情况
  • 检测短时间内同一域名解析IP变化的情况

2. 浏览器/客户端防御

  • 实现DNS pinning机制(固定域名解析结果)
  • 检测并阻止域名解析IP从外网变为内网的情况
  • 对频繁变化的DNS解析结果进行告警

3. 网络层面防御

  • 防火墙规则限制内网设备接收来自浏览器的异常请求
  • 监控内网设备与外部域名的异常通信

4. 综合防御策略

  • 联动分析DNS查询与响应模式
  • 建立域名-IP绑定关系的白名单机制
  • 对JS代码中的可疑域名请求进行检测

五、总结

DNS重绑定攻击是一种利用DNS机制和浏览器安全模型缺陷的经典攻击方式。防御需要从DNS解析、浏览器行为、网络通信等多个层面进行综合防护,特别是要关注TTL=0、域名解析IP突变等异常情况。随着物联网设备增多,此类攻击的潜在危害更大,需要持续关注和加强防护。

DNS重绑定攻击详解 一、DNS重绑定攻击简介 DNS重绑定攻击(DNS Rebinding Attack)是一种利用DNS解析机制和浏览器同源策略漏洞的攻击手段。攻击者通过控制DNS服务器,使同一个域名在不同时间解析为不同的IP地址,从而绕过同源策略限制,实现对内网或其他受限资源的访问。 二、核心概念解析 1. 同源策略(Same Origin Policy, SOP) 定义 :由Netscape公司1995年引入浏览器的安全机制 作用 :限制不同源的脚本相互访问资源 同源判定标准 :协议、域名、端口三者完全相同 重要性 :防止XSS、CSRF等攻击的基础安全机制 2. TTL(Time To Live) 定义 :DNS记录在DNS服务器上的缓存时间 特点 : 数值越小,修改记录生效越快 TTL=0表示不缓存,每次都需要重新查询 攻击利用 :攻击者设置TTL=0使DNS记录不被缓存 3. 域名解析过程 浏览器检查自身DNS缓存 检查操作系统DNS缓存(TTL未过期则使用) 发起DNS系统调用(迭代查询): 运营商DNS → 根域名服务器 → 顶级域名服务器 → 二级域名服务器 获取IP后建立连接通信 三、攻击原理与流程 攻击核心思想 利用DNS解析结果可变性,使同一域名在不同时间解析为不同IP地址,绕过同源策略限制。 攻击场景一:直接攻击内网 第一次解析 : 受害者访问恶意链接(如钓鱼邮件) 浏览器查询www.attack.com 攻击者DNS返回真实IP(如97.126.54.33),TTL=0 首次访问 : 浏览器加载攻击者服务器内容 页面包含恶意JS代码,反复向www.attack.com发送POST请求 第二次解析 : 由于TTL=0,缓存失效,浏览器重新查询 攻击者DNS返回内网IP(如192.168.0.1) 攻击实施 : 浏览器认为同源,向内网设备发送恶意请求 实现对内网设备的攻击 攻击场景二:通过外网下载恶意文件 流程与场景一类似,区别在于: 第二次解析返回的是攻击者控制的外网IP 通过下载恶意文件控制受害者主机 四、防御措施 1. DNS层面防御 监控和过滤TTL=0的异常情况 检测短时间内同一域名解析IP变化的情况 2. 浏览器/客户端防御 实现DNS pinning机制(固定域名解析结果) 检测并阻止域名解析IP从外网变为内网的情况 对频繁变化的DNS解析结果进行告警 3. 网络层面防御 防火墙规则限制内网设备接收来自浏览器的异常请求 监控内网设备与外部域名的异常通信 4. 综合防御策略 联动分析DNS查询与响应模式 建立域名-IP绑定关系的白名单机制 对JS代码中的可疑域名请求进行检测 五、总结 DNS重绑定攻击是一种利用DNS机制和浏览器安全模型缺陷的经典攻击方式。防御需要从DNS解析、浏览器行为、网络通信等多个层面进行综合防护,特别是要关注TTL=0、域名解析IP突变等异常情况。随着物联网设备增多,此类攻击的潜在危害更大,需要持续关注和加强防护。