DNS重绑定攻击原理与防御详解
字数 1173 2025-11-19 16:54:41

DNS重绑定攻击原理与防御详解

一、攻击描述
DNS重绑定攻击是一种利用DNS解析机制绕过同源策略(SOP)的攻击技术。攻击者通过控制域名解析过程,使浏览器在单次会话中先后访问不同IP地址,从而让恶意脚本与内网服务交互,窃取数据或执行未授权操作。典型场景是绕过浏览器安全限制,访问路由器管理界面或内网应用。

二、攻击原理分步解析

  1. 同源策略的限制

    • 浏览器规定:脚本只能访问与其来源(协议+域名+端口)相同的资源。
    • 关键点:同源策略仅验证域名是否一致,不验证IP地址是否变化。
  2. DNS重绑定的核心漏洞

    • 攻击者注册一个域名(如evil.com),并设置极短的TTL(例如1秒)。
    • 首次解析时,DNS服务器返回一个攻击者控制的外网IP(如1.2.3.4),托管恶意脚本。
    • 当浏览器执行脚本后,攻击者通过修改DNS记录,使同一域名解析到内网IP(如192.168.1.1)。
    • 由于浏览器只验证域名而非IP,脚本可继续向evil.com发送请求,但实际访问的是内网资源。
  3. 攻击流程详解

    • 步骤1:用户访问http://evil.com,DNS解析为1.2.3.4,加载恶意脚本。
    • 步骤2:脚本通过XMLHttpRequestWebSocket连接evil.com
    • 步骤3:DNS记录被重绑定为内网IP(如192.168.1.1:80),浏览器发送请求至内网设备。
    • 步骤4:脚本窃取内网服务的响应数据(如路由器配置),回传至攻击者服务器。

三、防御措施分层解析

  1. 浏览器端防护

    • DNS缓存锁定:浏览器在会话期间固定域名解析的IP(如Chrome的DNS pinning机制)。
    • Host头验证:内网服务检查HTTP请求的Host头是否匹配预期域名或IP。
  2. 网络层防护

    • 防火墙规则
      • 禁止内网设备响应外网IP的请求。
      • 限制内网服务仅允许特定IP段访问(如仅限局域网IP)。
    • DNS过滤:企业网络屏蔽TTL过短的域名或可疑DNS查询。
  3. 应用层加固

    • 认证强化:内网服务要求强认证(如双因素认证),避免未授权访问。
    • CSRF令牌:内网接口添加随机令牌,防止恶意脚本直接调用。
    • CORS配置:明确设置Access-Control-Allow-Origin为信任源,避免通配符(*)。
  4. 开发规范

    • 避免内网服务依赖域名验证,优先使用IP白名单机制。
    • 服务端对敏感接口实施来源IP与会话绑定检查。

四、实际案例辅助理解

  • 路由器劫持:恶意脚本通过DNS重绑定访问http://192.168.1.1/admin,修改路由器DNS设置,导向恶意服务器。
  • 防御验证:路由器管理界面应验证Referer头或要求二次认证,并禁止通过外网域名访问。

通过以上分层解析,可全面理解DNS重绑定攻击的利用条件及针对性防护措施。

DNS重绑定攻击原理与防御详解 一、攻击描述 DNS重绑定攻击是一种利用DNS解析机制绕过同源策略(SOP)的攻击技术。攻击者通过控制域名解析过程,使浏览器在单次会话中先后访问不同IP地址,从而让恶意脚本与内网服务交互,窃取数据或执行未授权操作。典型场景是绕过浏览器安全限制,访问路由器管理界面或内网应用。 二、攻击原理分步解析 同源策略的限制 浏览器规定:脚本只能访问与其来源(协议+域名+端口)相同的资源。 关键点:同源策略仅验证域名是否一致,不验证IP地址是否变化。 DNS重绑定的核心漏洞 攻击者注册一个域名(如 evil.com ),并设置极短的TTL(例如1秒)。 首次解析时,DNS服务器返回一个攻击者控制的外网IP(如1.2.3.4),托管恶意脚本。 当浏览器执行脚本后,攻击者通过修改DNS记录,使同一域名解析到内网IP(如192.168.1.1)。 由于浏览器只验证域名而非IP,脚本可继续向 evil.com 发送请求,但实际访问的是内网资源。 攻击流程详解 步骤1 :用户访问 http://evil.com ,DNS解析为1.2.3.4,加载恶意脚本。 步骤2 :脚本通过 XMLHttpRequest 或 WebSocket 连接 evil.com 。 步骤3 :DNS记录被重绑定为内网IP(如192.168.1.1:80),浏览器发送请求至内网设备。 步骤4 :脚本窃取内网服务的响应数据(如路由器配置),回传至攻击者服务器。 三、防御措施分层解析 浏览器端防护 DNS缓存锁定 :浏览器在会话期间固定域名解析的IP(如Chrome的DNS pinning机制)。 Host头验证 :内网服务检查HTTP请求的Host头是否匹配预期域名或IP。 网络层防护 防火墙规则 : 禁止内网设备响应外网IP的请求。 限制内网服务仅允许特定IP段访问(如仅限局域网IP)。 DNS过滤 :企业网络屏蔽TTL过短的域名或可疑DNS查询。 应用层加固 认证强化 :内网服务要求强认证(如双因素认证),避免未授权访问。 CSRF令牌 :内网接口添加随机令牌,防止恶意脚本直接调用。 CORS配置 :明确设置 Access-Control-Allow-Origin 为信任源,避免通配符( * )。 开发规范 避免内网服务依赖域名验证,优先使用IP白名单机制。 服务端对敏感接口实施来源IP与会话绑定检查。 四、实际案例辅助理解 路由器劫持 :恶意脚本通过DNS重绑定访问 http://192.168.1.1/admin ,修改路由器DNS设置,导向恶意服务器。 防御验证 :路由器管理界面应验证Referer头或要求二次认证,并禁止通过外网域名访问。 通过以上分层解析,可全面理解DNS重绑定攻击的利用条件及针对性防护措施。