DNS重绑定攻击原理与防御
字数 1245 2025-11-18 17:08:48

DNS重绑定攻击原理与防御

1. 攻击背景与基本概念

DNS重绑定攻击是一种利用DNS解析机制绕过同源策略(SOP)的攻击技术。同源策略要求网页脚本只能访问与当前页面相同协议、域名和端口的资源,但DNS重绑定通过动态改变域名对应的IP地址,使恶意脚本在用户浏览器中访问内部网络资源(如路由器、IoT设备等)。

2. 攻击原理分步解析

步骤1:攻击者控制恶意域名

攻击者注册一个域名(如evil.com),并配置其DNS记录,使得该域名的TTL(生存时间)极短(例如设为0或几秒)。同时,攻击者搭建一个恶意网站,其中包含用于攻击的JavaScript代码。

步骤2:用户访问恶意网站

用户被诱导访问http://evil.com,浏览器会解析该域名并获取初始IP(例如一个公网IP,指向攻击者控制的服务器)。此时,恶意页面中的JavaScript代码开始执行。

步骤3:DNS重绑定触发

由于TTL极短,浏览器在短时间内会重新查询evil.com的IP地址。攻击者通过DNS服务器将域名解析为一个内部IP地址(如192.168.1.1,指向用户本地路由器)。此时,浏览器认为恶意脚本与内部IP属于“同源”(因为同源策略仅校验域名,不校验IP变化)。

步骤4:绕过同源策略访问内部资源

恶意JavaScript通过Ajax或WebSocket等方式直接访问内部设备的管理界面(如http://192.168.1.1/admin),窃取数据或执行未授权操作。

3. 攻击的关键条件

  • 短TTL DNS记录:确保浏览器快速重新解析域名。
  • 用户浏览器保持连接:页面需在DNS重绑定后仍保持活跃(如使用长轮询或WebSocket)。
  • 内部服务无认证或弱认证:许多IoT设备或路由器默认无需密码即可访问管理界面。

4. 防御措施

4.1 浏览器端防护

  • DNS固定(DNS Pinning):现代浏览器在会话期间会缓存域名的初始IP,忽略TTL过期后的重新解析(但部分浏览器允许通过非标准端口或协议绕过)。
  • 增强同源策略检查:某些浏览器会验证IP是否与域名初始解析一致。

4.2 网络层防护

  • 防火墙规则:禁止内部设备响应来自公网的请求,或限制内部服务仅允许特定IP段访问。
  • DNS过滤:使用安全DNS服务(如Cloudflare 1.1.1.1)拦截恶意域名。

4.3 服务端防护

  • 强制认证:为内部服务设置强密码或多因素认证。
  • 检查Host头:服务端验证请求的Host头是否属于合法域名。

4.4 应用开发建议

  • 避免在客户端使用内部IP或域名直接访问资源。
  • 对敏感操作增加CSRF令牌或二次确认机制。

5. 实际案例

例如,攻击者通过DNS重绑定访问家庭路由器的管理界面,修改DNS设置或将用户流量劫持到恶意服务器。此类攻击曾用于大规模IoT僵尸网络的构建(如Mirai变种)。

通过理解DNS重绑定的链式操作,可以更有效地部署防御策略,保护内网资源免受跨域攻击。

DNS重绑定攻击原理与防御 1. 攻击背景与基本概念 DNS重绑定攻击是一种利用DNS解析机制绕过同源策略(SOP)的攻击技术。同源策略要求网页脚本只能访问与当前页面相同协议、域名和端口的资源,但DNS重绑定通过动态改变域名对应的IP地址,使恶意脚本在用户浏览器中访问内部网络资源(如路由器、IoT设备等)。 2. 攻击原理分步解析 步骤1:攻击者控制恶意域名 攻击者注册一个域名(如 evil.com ),并配置其DNS记录,使得该域名的TTL(生存时间)极短(例如设为0或几秒)。同时,攻击者搭建一个恶意网站,其中包含用于攻击的JavaScript代码。 步骤2:用户访问恶意网站 用户被诱导访问 http://evil.com ,浏览器会解析该域名并获取初始IP(例如一个公网IP,指向攻击者控制的服务器)。此时,恶意页面中的JavaScript代码开始执行。 步骤3:DNS重绑定触发 由于TTL极短,浏览器在短时间内会重新查询 evil.com 的IP地址。攻击者通过DNS服务器将域名解析为一个 内部IP地址 (如 192.168.1.1 ,指向用户本地路由器)。此时,浏览器认为恶意脚本与内部IP属于“同源”(因为同源策略仅校验域名,不校验IP变化)。 步骤4:绕过同源策略访问内部资源 恶意JavaScript通过Ajax或WebSocket等方式直接访问内部设备的管理界面(如 http://192.168.1.1/admin ),窃取数据或执行未授权操作。 3. 攻击的关键条件 短TTL DNS记录 :确保浏览器快速重新解析域名。 用户浏览器保持连接 :页面需在DNS重绑定后仍保持活跃(如使用长轮询或WebSocket)。 内部服务无认证或弱认证 :许多IoT设备或路由器默认无需密码即可访问管理界面。 4. 防御措施 4.1 浏览器端防护 DNS固定(DNS Pinning) :现代浏览器在会话期间会缓存域名的初始IP,忽略TTL过期后的重新解析(但部分浏览器允许通过非标准端口或协议绕过)。 增强同源策略检查 :某些浏览器会验证IP是否与域名初始解析一致。 4.2 网络层防护 防火墙规则 :禁止内部设备响应来自公网的请求,或限制内部服务仅允许特定IP段访问。 DNS过滤 :使用安全DNS服务(如Cloudflare 1.1.1.1)拦截恶意域名。 4.3 服务端防护 强制认证 :为内部服务设置强密码或多因素认证。 检查Host头 :服务端验证请求的Host头是否属于合法域名。 4.4 应用开发建议 避免在客户端使用内部IP或域名直接访问资源。 对敏感操作增加CSRF令牌或二次确认机制。 5. 实际案例 例如,攻击者通过DNS重绑定访问家庭路由器的管理界面,修改DNS设置或将用户流量劫持到恶意服务器。此类攻击曾用于大规模IoT僵尸网络的构建(如Mirai变种)。 通过理解DNS重绑定的链式操作,可以更有效地部署防御策略,保护内网资源免受跨域攻击。