Mobile wallpaper 1Mobile wallpaper 2Mobile wallpaper 3Mobile wallpaper 4
874 字
4 分钟
多样的DNS重绑定攻击的深入链
2026-03-15
统计加载中...

多样的DNS重绑定攻击的深入链#

当然是有前置知识的

DNS(Domain Name Service),这是将ip地址和域名相连接的

互联网服务,这样大众也就可以在访问域名的时候直接对公网

的ip主机进行访问,而不用记枯燥的ip

这里引用一下dns的记录类型

  • A记录:将域名解析为IPv4地址。
  • AAAA记录:将域名解析为IPv6地址。
  • CNAME记录:用于将一个域名指向另一个域名。
  • MX记录:指定处理域名电子邮件的邮件服务器。
  • NS记录:指定负责解析域名的DNS服务器。
  • TXT记录:用于存储与域名相关的任意文本信息。
  • SRV记录:用于指定提供特定服务的服务器及其优先级和权重。

img

当在浏览器对一个域名进行请求的时候,首先浏览器会查询自身缓存的dns,

如果没有后会查询os端的host文件,如果还没有就继续向上查询根域名服务器,返回顶级域的地址

当然这里可以注意到,如果本地没有dns缓存的话

我们请求dns服务器的解析的返回结果是完全取决于服务端的,

并且每个根域名服务器的架构不同,默认的TTL,也就是默认缓存时间也不一样

这样我们就可以趁两次TTL的差值进行dns重绑定

光说没用,可以模拟一下场景

如果在实战中有一个ssrf点,但是ban了本地地址,无法直接输入127,0,0,1或者localhost等等

那么可以利用dns劫持的二次回环

http://make-1.1.1.1-rebind-127-0-0-1-rr.1u.ms:2375/xxxx

这里的make代表动态解析域名,也就是自己指定如何解析

第一次查询返回1.1.1.1,rebind也就是利用了dns解析两次不一致,后续切换解析为

127-0-0-1,rr也就是轮询。最后也就是dns服务器的地址

当然这种解析规则是根据服务商不一样而变化的

比如7f000001.01010101.rbndr.us

这里的7f000001就是127.0.0.1,01010101就是1.1.1.1

但是本质是一样的,这都可以绕过单点ssrf对于其中回环模式的block

当然,这里还是有后续思路的,

撰写一个poc,扫描绕过单点ssrf后的端口,探测到docker remote服务

可以直接发json起服务,拿到flag

简述下POC

{
"Image": "busybox",
"Cmd": ["/host/readflag"],
"HostConfig": {
"Binds": ["/:/host:ro"]
}
}

当然,这点在不规范化请求的时候还蛮常见的

那么,深入来说,到底是什么时间点,dns的解析发生了变化

在服务器向dns服务商请求完ip之后,本地缓存TTL开始生效的时候,那个瞬间TCP连接还没有确立

然后它再次检查的时候遇到了rebind,也就进行了重定向,

至于为什么是两次,一次是DNS解析检查,第二次才是真正的HTTP

也就是说,因为需要检查本地回环,它需要连续发两次解析请求,而TTL时间极短

在这之中ip发生了重绑定,也就绕过了本地回环了block。

也就是说,目标若在 check 和 connect 间再次解析域名,就给了 rebinding 时间窗口。

当然,防范的理论也比较好说,第一次校验立即锁定ip即可,或者最终检查ip即可

sora~~~~

》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》》

多样的DNS重绑定攻击的深入链
https://steins-gate.cn/posts/suctf2026/
作者
萦梦sora~X
发布于
2026-03-15
许可协议
Unlicensed

部分信息可能已经过时