來源:云盾先知技術社區

作者:Avfisher

0x00 前言

應CVE作者的要求幫忙分析一下這個漏洞,實際上這是一個思路比較有意思的Apple XSS(CVE-2016-7762)。漏洞作者確實腦洞比較大也善于嘗試和發掘,這里必須贊一個!

0x01 分析與利用

官方在2017年1月24日發布的安全公告中如下描述:

  • 可利用設備:iPhone 5 and later, iPad 4th generation and later, iPod touch 6th generation and later
  • 漏洞影響:處理惡意構造的web內容可能會導致XSS攻擊
  • 漏洞描述:Safari在顯示文檔時產生此漏洞,且該漏洞已通過修正輸入校驗被解決了

那么,該漏洞真的如安全公告中所描述的那樣被解決了嗎?實際上,結果并非如此。 在分析之前,首先先了解一下這到底是個什么漏洞。 POC:

  1. 創建一個文檔文件,比如: Word文件(docx) PPT文件(pptx) 富文本文件(rtf)

  2. 添加一個超鏈接并插入JS腳本,如:

  3. javascript:alert(document.domain);void(0)
  4. javascript:alert(document.cookie);void(0)
  5. javascript:alert(location.href);void(0)
  6. javascript:x=new Image();x.src=”Xss Platform”;

  7. 上傳文件至web服務器然后在Apple設備上使用如下應用打開,如:

  8. Safari

  9. QQ Browser
  10. Firefox Browser
  11. Google Browser
  12. QQ客戶端
  13. 微信客戶端
  14. 支付寶客戶端

  15. 點擊文檔文件中的超鏈接,上述JS腳本將會被執行從而造成了XSS漏洞

效果圖如下:

回顧一下上面的POC,發現其實該漏洞不僅僅存在于Safari中而是普遍存在于使用了WebKit的APP中。

我們都知道,iOS APP要想像瀏覽器一樣可以顯示web內容,那么就必須使用WebKit。這是因為WebKit提供了一系列的類用于實現web頁面展示,以及瀏覽器功能。 而其中的WKWebView(或者UIWebView)就是用來在APP中顯示web內容的。而當我們使用Safari或者使用了WebKit的APP去打開一個URL時,iOS就會自動使用WKWebView/UIWebView來解析和渲染這些頁面或者文檔。 當受害人點擊web服務器上的文檔中的鏈接時,就會導致超鏈接中插入的javascript腳本被執行從而造成了XSS。這是因為WKWebView/UIWebView在解析和渲染遠程服務器上的文檔文件時并沒有對文檔中內嵌的內容做很好的輸入校驗導致的。

該漏洞單從利用的角度來說還是比較雞肋的,因為漏洞的觸發必須依賴于用戶點擊文檔中的超鏈接,筆者可以想到的可能的利用場景如下:

  • 攻擊者上傳了一個包含了惡意JS的超鏈接(比如:個人博客鏈接)的Word文件(比如:個人簡歷)至招聘網站
  • 受害者(比如:HR或者獵頭)登錄招聘網站且使用iPhone或者iPad上的Safari在線打開該簡歷中的“博客鏈接”,那么此時攻擊者很可能就成功獲取了受害者的該網站cookie之類的信息

0x02 思考

這個XSS漏洞本身其實并沒有太多的技術含量或者技巧,但是在挖掘思路上卻是很有意思且值得思考的。漏洞作者并沒有將利用js直接插入至web頁面本身,而是巧妙地利用了某些文檔中的超鏈接繞過了WebKit的輸入校驗。這也從一定程度上再次闡釋了web安全中一個最基本的原則即“所有輸入都是不安全的”,不管是直接輸入或者是間接輸入。我們在做應用或者產品的安全設計時最好能夠確認各種信任邊界以及輸入輸出,且做好校驗過濾以及必要的編碼,這樣才能有效的防范這種間接輸入導致的漏洞。

0x03 作者語錄

其實這個漏洞的產生早在12年的時候就有類似的案例了,目前Apple修復了該漏洞后我還繼續做了些深入的研究,其實不僅僅局限于javascript的協議,當然還可以用上sms://,tel:10086等等這些協議進行巧妙的玩法,具體得你們研究了!最后感謝網絡尖刀@Avfisher、@Microsoft Security Response Center的一些幫助!

0x04 參考

  • https://support.apple.com/en-us/HT207422
  • https://developer.apple.com/reference/webkit
  • https://developer.apple.com/reference/webkit/wkwebview
  • https://developer.apple.com/reference/uikit/uiwebview

Paper 本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/235/