子網域接管(Subdomain Takeover)發生在攻擊者能取得合法網站底下的某個子網域控制權。一旦得手,就可以在該子網域上提供惡意內容或攔截使用者流量。
網域名稱結構基礎#
要理解這類漏洞,先快速回顧 DNS:
- 頂層網域(TLD):最右側的部分,如
.com、.ca、.info - 註冊網域:可被個人或公司註冊的部分,如
example.com - 子網域(Subdomain):左側額外段落,如
webmail.example.com、www.example.com
子網域常用兩種 DNS 記錄建立:
- A record:把名稱對應到一個或多個 IP
- CNAME record:把一個名稱對應到另一個名稱(常指向第三方服務)
只有網站管理員可建立這些記錄——除非找到漏洞。
子網域接管的成因#
當 A/CNAME 指向的目標已被釋出但 DNS 紀錄沒清除,攻擊者就能搶下該目標、繼承這條子網域。
經典 Heroku 情境#
- Example Company 在 Heroku 註冊帳號,獲得
unicorn457.herokuapp.com - 在自己 DNS 設 CNAME:
test.example.com→unicorn457.herokuapp.com - 幾個月後決定收掉
test.example.com,關掉 Heroku 帳號但忘了刪 CNAME - 攻擊者注意到 CNAME 還指向已釋出的
unicorn457.herokuapp.com,搶下該名稱 - 從此
test.example.com顯示攻擊者的內容——以正當網域之名行騙
常見高風險服務#
Heroku、Zendesk、GitHub、Amazon S3、SendGrid、Fastly、Modulus 等都曾是接管漏洞的溫床。
為何危害大#
- 共享 Cookie 範圍:若
example.com的 Cookie 設成.example.com,會被送到任何子網域——攻擊者可在被接管的子網域上讀走 Cookie - 釣魚:以「看似官方」的子網域提供登入頁
- 電子郵件攔截(如後續 Uber/SendGrid 案例)
找這類漏洞的工具:
- KnockPy ↗:列舉子網域並檢查接管錯誤訊息
- SecLists ↗:常見子網域字典
- https://crt.sh/ ↗:以 SSL 憑證紀錄列出網域所有子網域
- https://censys.io/ ↗:以憑證 hash 反查子網域
- can-i-take-over-xyz ↗:各服務的接管狀態整理
案例 1:Ubiquiti Subdomain Takeover#
- 難度:低
- URL:
http://assets.goubiquiti.com/- 回報來源:https://hackerone.com/reports/109699/ ↗
- 回報日期:2016-01-10
- 獎金:$500
漏洞描述#
Ubiquiti 的 CNAME assets.goubiquiti.com 指向 S3 的 uwn-images,但這個 bucket 已經未被認領(或被刪除而忘了清 DNS)。Amazon S3 的 bucket 名是全域唯一,攻擊者可以直接註冊 uwn-images → 立即接管 assets.goubiquiti.com。
Takeaways#
任何指向第三方服務(特別是 S3)的 DNS 紀錄都要追問:「對方是不是真的還在使用這個資源?」用 KnockPy 持續監控可以及時抓到變化。
案例 2:Scan.me Pointing to Zendesk#
- 難度:低
- URL:
http://support.scan.me/- 回報來源:https://hackerone.com/reports/114134/ ↗
- 回報日期:2016-02-02
- 獎金:$1,000
漏洞描述#
scan.me 將 support.scan.me 透過 CNAME 指到 scan.zendesk.com。Snapchat 收購 scan.me 後關閉 Zendesk 帳號但沒刪 CNAME。研究者 harry_mg 在 Zendesk 上認領 scan.zendesk.com 並接管子網域。
Takeaways#
企業合併/收購是接管漏洞的高發期。整合過程中常有子網域被棄用但 DNS 留存——值得在收購公告後持續監看。
案例 3:Shopify Windsor Subdomain Takeover#
- 難度:低
- URL:
http://windsor.shopify.com/- 回報來源:https://hackerone.com/reports/150374/ ↗
- 回報日期:2016-07-10
- 獎金:$500
漏洞描述#
並非所有接管都涉及第三方服務。研究者 zseano 在 crt.sh 找到 windsor.shopify.com 的 SSL 憑證紀錄,發現 CNAME 指向 aislingofwindsor.com——一個實際註冊的網域。造訪該子網域返回 404,他乾脆花 $10 買下 aislingofwindsor.com,順勢接管 windsor.shopify.com。
Takeaways#
CNAME 指向另一個普通網域,子網域回 404 → 嘗試在註冊商查詢該網域是否可註冊。這是繞過第三方服務模型的另一條路。
案例 4:Snapchat Fastly Takeover#
- 難度:中
- URL:
http://fastly.sc-cdn.net/takeover.html- 回報來源:https://hackerone.com/reports/154425/ ↗
- 回報日期:2016-07-27
- 獎金:$3,000
漏洞描述#
Fastly 是 CDN。研究者 Ebrietas 發現 fastly.sc-cdn.net 的 CNAME 指向 Fastly 的子網域,回應錯誤訊息:
Fastly error: unknown domain:
. Please check that this domain has been added to a service.
他先在 censys.io 用 SSL 憑證資訊確認 sc-cdn.net 屬於 Snapchat(域名本身沒提到 Snapchat),再設定自己的伺服器接收流量驗證——確認後才回報。
Snapchat 確認當時仍有少部分舊版 App 對該子網域請求未驗證內容——攻擊者本可在這段時間內提供惡意檔案。
Takeaways#
- 看到第三方服務的錯誤訊息時,去讀該服務的文件,了解需要哪些設定才能接管
- 驗證歸屬:透過 SSL 憑證資訊確認模糊的網域是不是目標公司所有
案例 5:Legal Robot Takeover#
- 難度:中
- URL:
https://api.legalrobot.com/- 回報來源:https://hackerone.com/reports/148770/ ↗
- 回報日期:2016-07-01
- 獎金:$100
漏洞描述#
Legal Robot 已正確在 Modulus.io 上認領 api.legalrobot.com。但 Frans Rosen 換個角度——嘗試認領通配子網域 *.legalrobot.com。Modulus 的設計允許通配子網域覆蓋特定子網域,於是 Rosen 接管了 api.legalrobot.com。

Figure 14-1: Frans Rosen 為子網域接管所提供的 HTML PoC 頁面原始碼
Rosen 的 PoC 是一個低調的 HTML 頁面,加上 HTML 註解標示自己持有,避免讓公司在公開 URL 上看起來「被攻陷」。這是值得學的善意做法。
Takeaways#
即使網站「正確設定」第三方服務,第三方服務本身的設計缺陷仍可能讓接管成立。試完特定子網域後,別忘了試
*通配。
案例 6:Uber SendGrid Mail Takeover#
- 難度:中
- URL:
https://em.uber.com/- 回報來源:https://hackerone.com/reports/156536/ ↗
- 回報日期:2016-08-04
- 獎金:$10,000
漏洞描述#
SendGrid 是雲端電子郵件服務。研究者 Rojan Rijal 發現 Uber 對 em.uber.com 設了 MX 記錄指向 mx.sendgrid.net。SendGrid 文件中提到 Inbound Parse Webhook 服務需要兩步:
- MX 記錄指到
mx.sendgrid.net(Uber 已做) - 在 SendGrid 後台把該網域與 Webhook URL 關聯起來
Uber 沒做第二步。Rijal 在自己的 SendGrid 帳號裡認領 em.uber.com 為 Inbound Parse Webhook,並在自己伺服器上接收流量——成功攔截寄到 em.uber.com 的所有電子郵件。
回報後 SendGrid 加入「必須先驗證網域歸屬」的安全檢查。
Takeaways#
讀第三方服務的開發者文件——尋找「需要兩步以上設定才安全」的功能。任何有一步是「在主控台開關」的整合,都該檢查目標是否漏做。
章末總結#
- 子網域接管的常見模式:DNS 記錄指向已釋出或未認領的第三方資源
- 高 CP 值切入點:
- DNS 紀錄指向 Heroku、S3、Zendesk、Fastly、SendGrid、Modulus
- SSL 憑證紀錄列出來但目前回 404 的子網域
- 收購/合併後留下的孤兒紀錄
- 進階技巧:通配子網域接管、Webhook 接管、MX 接管攔截 Email
- PoC 要低調:用 HTML 註解或非破壞性內容驗證即可,避免讓對方公開難堪