DNS 重绑定
DNS 重绑定 是什么?
DNS 重绑定一种基于浏览器的攻击,通过极低的 DNS TTL,使主机名先解析到攻击者服务器,再切换到内部 IP,从而绕过同源策略。
DNS 重绑定攻击中,攻击者控制 evil.example.com 这类域名的权威 DNS 服务器,并返回极短 TTL。受害者浏览器先将该主机名解析到攻击者的公网 IP,加载其 JavaScript,同源策略此时认为合法。随后攻击者的 DNS 将同一个名字重新绑定到内部地址,如 192.168.1.1、127.0.0.1 或云元数据 IP(169.254.169.254)。由于浏览器看到的来源(协议、主机、端口)未变,之前加载的 JavaScript 现在可以与内部目标的 HTTP API 交互,窃取数据或执行特权操作。常见防御措施包括 Host 头校验、内部服务的身份验证、DNS pinning、浏览器缓存以及在公共解析器上过滤 RFC 1918 与元数据 IP。
● 示例
- 01
恶意广告将 evil.example.com 重绑定到 192.168.1.1,从而读取受害者路由器的管理页面。
- 02
攻击者通过受控浏览器会话访问位于 169.254.169.254 的 AWS 实例元数据。
● 常见问题
DNS 重绑定 是什么?
一种基于浏览器的攻击,通过极低的 DNS TTL,使主机名先解析到攻击者服务器,再切换到内部 IP,从而绕过同源策略。 它属于网络安全的 网络安全 分类。
DNS 重绑定 是什么意思?
一种基于浏览器的攻击,通过极低的 DNS TTL,使主机名先解析到攻击者服务器,再切换到内部 IP,从而绕过同源策略。
DNS 重绑定 是如何工作的?
DNS 重绑定攻击中,攻击者控制 evil.example.com 这类域名的权威 DNS 服务器,并返回极短 TTL。受害者浏览器先将该主机名解析到攻击者的公网 IP,加载其 JavaScript,同源策略此时认为合法。随后攻击者的 DNS 将同一个名字重新绑定到内部地址,如 192.168.1.1、127.0.0.1 或云元数据 IP(169.254.169.254)。由于浏览器看到的来源(协议、主机、端口)未变,之前加载的 JavaScript 现在可以与内部目标的 HTTP API 交互,窃取数据或执行特权操作。常见防御措施包括 Host 头校验、内部服务的身份验证、DNS pinning、浏览器缓存以及在公共解析器上过滤 RFC 1918 与元数据 IP。
如何防御 DNS 重绑定?
针对 DNS 重绑定 的防御通常结合技术控制与运营实践,详见上方完整定义。
DNS 重绑定 还有哪些其他名称?
常见的别称包括: 浏览器 DNS 重绑定。
● 相关术语
- attacks№ 343
DNS 欺骗
通过注入伪造的 DNS 响应,将受害者从合法域名重定向到攻击者控制的 IP 地址的攻击。
- attacks№ 337
DNS 缓存投毒
向 DNS 递归解析器缓存中插入伪造记录的攻击,使其在 TTL 过期前持续返回攻击者指定的地址。
- attacks№ 338
DNS 劫持
通过修改客户端设置、路由器配置、解析器响应或权威 DNS 记录,将 DNS 解析重定向到攻击者控制结果的攻击。
- network-security№ 1112
子域接管
由于悬空的 DNS 记录(通常是 CNAME)指向未被领取的云或 SaaS 资源,攻击者可以重新注册该资源并冒充该子域。
- network-security№ 553
IP 地址
分配给网络接口、用于在 IP 网络中进行路由的数字标识符:IPv4(RFC 791)为 32 位,IPv6(RFC 8200)为 128 位。
- network-security№ 501
HTTPS
运行在 TLS 加密连接之上的 HTTP,为 Web 流量提供机密性、完整性以及服务端身份认证。