DNS重绑定攻击原理与防御详解
字数 1173 2025-11-19 16:54:41
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:脚本窃取内网服务的响应数据(如路由器配置),回传至攻击者服务器。
- 步骤1:用户访问
三、防御措施分层解析
-
浏览器端防护
- 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重绑定攻击的利用条件及针对性防护措施。