挖洞經驗 | 看我如何發現星巴克(Starbucks)子域名劫持漏洞
最近,我好像和星巴克( Starbucks)有緣,連續發現了它的兩個子域名劫持漏洞,囊獲了$4000美金。其中, ofollow,noindex" target="_blank">第一個漏洞是基於微軟的Azure雲服務 發現的,這一次的第二個漏洞也非常相似,我是利用Azure雲服務中的流量管理器(Traffic Manager)來發現的。這篇文章,我就來和大家分享一下這個基於Azure流量管理器的子域名劫持漏洞發現過程。
發現NXDOMAIN響應
某個星期一大早上,我注意到星巴克子域名wfmnarptpc.starbucks.com解析出現了找不到CNAME的NXDOMAIN響應,也就是其域名別名記錄不存在於權威伺服器中。但實際上有趣的是,在ANSWER SECTION訊息中,卻存在一條記錄,它做了CNAME指向s00149tmppcrpt.trafficmanager.net。憑我的經驗來說,我覺得這種情況可能存在子域名劫持漏洞。因為我上一個子域名劫持漏洞中,也是因為 Azure 的專用IP地址,在CNAME解析時出現了NXDOMAIN響應的情況。我想,這裡十有八九也是這種情況。
$ dig a wfmnarptpc.starbucks.com ; <<>> DiG 9.10.6 <<>> a wfmnarptpc.starbucks.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 20251 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 4096 ;; QUESTION SECTION: ;wfmnarptpc.starbucks.com. IN A ;; ANSWER SECTION: wfmnarptpc.starbucks.com. 33165 IN CNAME s00149tmppcrpt.trafficmanager.net.
Azure 雲服務;是一個靈活的企業級公有云平臺,提供資料庫、雲服務、雲端儲存、人工智慧網際網路、CDN等高效、穩定、可擴充套件的雲端服務。之前,我也沒提到過 trafficmanager.net 可能存在子域劫持的可能,微軟 Azure 的流量管理器(Traffic Manager)是這樣描述自身功能的:
Azure 流量管理器是一種基於 DNS 的流量負載均衡器,可以在全球 Azure 區域內以最佳方式向服務分發流量,同時提供高可用性和響應性。流量管理器根據流量路由方法和終結點的執行狀況,使用 DNS 將客戶端請求定向到最合適的服務終結點。……,可以在 Azure 外部或非Azure服務端的環境中來部署使用流量管理器。
測試子域名的可註冊性
以上這個說明,按我的意思來理解,簡而言之,是不是說,有一些域名指向了 trafficmanager.net 不存在的子域?這裡,恰好又出現了NXDOMAIN響應狀況,那說明星巴克使用了Azure 的流量管理器服務,而且可能存在子域名劫持漏洞。為了證明這種猜測,我們需要看看能不能再註冊 s00149tmppcrpt.trafficmanager.net 這個子域名。幸運的是,Azure並沒有對註冊進行任何域名所有權的身份驗證。
從 我之前的介紹和研究 來看,到這一步可能還不能說明問題。因為 Azure 中會存在子域名禁用的配置,也就是說,以該域名來說,表面看似存在子域名劫持漏洞,但可能在實際建立註冊的時候又不行。不管那麼多,我還是先註冊吧,先在Azure控制面板中註冊一個新的流量管理器配置使用者:
成功實現子域名劫持
好在看綠色打勾處,可以通過!那麼子域名劫持一定是存在的了!也就是說,我能把域名 s00149tmppcrpt.trafficmanager.net 註冊為己有,然後進行相關的劫持漏洞測試。註冊成功後,我需要把這個域名指向我自己的伺服器:
之後,我只需要在我的伺服器中建立一個虛擬主機就行:
然後,這個域名指向就變成了我自己能控制的網站了:
*參考來源: patrick ,clouds編譯,轉載請註明來自FreeBuf.COM