一句话定义
子域名接管(Subdomain Takeover)指的是:你域名下的某个子域名(比如 blog.example.com)通过 DNS 记录指向了一个你已经不再控制的第三方服务,而别人只要在那个服务上把你曾经用过的标识符注册回来,就能在你自己的域名下发布内容。
它怎么发生的
先看 DNS 里最常见的一种记录:CNAME(Canonical Name)。它相当于一张“转接单”:blog.example.com 请转接到 myblog.someplatform.io。访客输入的是你的域名,实际内容由平台提供。
现在假设你搬家了:在平台上删掉了站点,或者注销了账号。平台那边 myblog.someplatform.io 就不存在了,但你 DNS 里的那条 CNAME 还挂着,像一张指向空号的转接单。
问题在于:很多平台允许标识符被重新注册——站点名、桶名、应用名这类“名字”在释放后往往回到可用池里。别人注册 myblog.someplatform.io 之后,访问 blog.example.com 的请求依然按 CNAME 转到平台,浏览器发出的 Host 头仍然是 blog.example.com,平台按这个头去匹配站点,匹配到的就是别人刚注册的那个。于是你的子域名下面出现了陌生人的页面。
同样的问题也出现在 A 记录上:你曾指向某台云主机的 IP,机器释放后 IP 被回收再分配给别人,而你的记录还指着它。
和相邻概念的区别
| 概念 | 动的是哪一环 | 需要攻破你的系统吗 |
|---|---|---|
| 子域名接管 | 你自己遗留的 DNS 记录 | 不需要,配置本身就是缺口 |
| DNS 劫持 / 域名劫持 | 注册商或 DNS 服务商账号 | 需要 |
| 主域名过期被抢注 | 域名注册本身 | 不需要,但影响的是整个域名 |
严格说,“悬空 DNS 记录”是病因,“子域名接管”是被人利用后的结果;信息收集阶段的子域枚举只是发现手段。
为什么值得当真
风险不只是“被人挂个页面”这么简单,因为浏览器认为这还是你的域:
- 钓鱼页面挂在你的品牌域名下,可信度陡增;
- 如果父域设置过
Domain=.example.com的 Cookie,可能被读到; - 邮件域信誉、SPF/DKIM 相关配置、CORS 白名单、企业 SSO 的受信域,都可能被借道。
对 AI 从业者尤其现实:模型 demo、Notebook 托管、推理端点、向量库控制台,常常是临时 POC,用完就丢,域名却留着。对普通职场人:市场部用第三方建站工具做活动页,活动结束删了页面,DNS 记录没人管。
怎么防
- 记录要有主人:每条 DNS 记录标注归属项目和负责人,下线时两边都清——删服务的同时删记录,别只删一边。
- 定期体检:把 CNAME 目标逐个解析,看是否返回“未找到 / 未配置”这类响应,那是悬空的信号。
- 少用泛解析:
*.example.com会让排查变得很难。 - 各平台对标识符回收的策略不同,具体以官方文档为准。
一句话总结:安全不只取决于你建了什么,也取决于你删干净了什么。
