文/ SuperHei(知道創宇404安全實驗室)
0x01 前言
這個是今年我在KCON 2016上的演講題目,這個漏洞我最早在今年的4月份報告給了蘋果公司一直沒有得到修復進度等反饋。在剛剛發布的iOS 10里已經不 受這個漏洞影響了,所以這里直接把細節再次和大家一起分享一下。
0x02 漏洞描述
這個漏洞主要是在iOS對于URL Scheme及其在UIWebView等控件的自動診斷識別等處理機制下導致跨應用XSS漏洞。
0x03 漏洞詳情
iOS下的URLScheme存在幾個特點:
-
iOS 下URL Schemes全局有效且只需安裝app即可生效。
-
iOS下的URL Schemes的鏈接會被UITextView或者UIWebView的Detection Links屬性識別為鏈接。
我們先看第2點的具體處理機制“UIWebView的Detection Links屬性識別為鏈接”,也就是說你輸入的任何URL Scheme連接都會被解析html里的a標簽的調用:
scheme:// —> <a … href="scheme://"> … </a >
對XSS漏洞很熟悉的同學,很可能就會想到2個方向:
- 通過雙引號閉合使用事件來執行js 經過測試在上引號出現在scheme里不會被識別,所以這個思路不通。
- 利用
javascript://偽協議執行js
在主流的瀏覽器內核有2種方法調用,最常見的方法:
<a href='javascript:alert(1)'>knownsec 404</a>
還有另外一種格式方法很少有人正規使用:
<a href='javascript://%0a%0dalert(1)'>knownsec 404</a>
注意:與://的區別,也就是這種非常見的方式導致了很多程序的漏洞,比如前面曝光的iMessage的XSS漏洞(CVE-2016-1764)
所以這個“BadURLScheme”就是javascript了,我們回到前面提到的iOS下的URLScheme的第一個特點,當用戶安裝了一個注冊了javascript這個URL Scheme的任意app后,如果其他的app里使用了UIWebView并且設置了Detection Links屬性識別,那么在這些app里輸入文本內容:
javascript://%0a%0dalert(1)
會被Detection Links屬性解析為<a>調用:
<a dir="ltr" href="javascript://%0a%0dalert(1)" x-apple-data-detectors="true" x-apple-data-detectors-type="link" x-apple-data-detectors-result="5">javascript://%0a%0dalert(1)</a>
成而導致這些app的XSS漏洞。
0x04 實際案列
要觸發漏洞需要滿足2個條件:首先用戶需要下載安裝一個注冊了javascript這個URL Scheme的app [只要求安裝就行],一般的方法主要攻擊者寫一注 冊了javascript這個URL Scheme的app利用短信、微信等社會工程學手段引誘用戶下載安裝,另外的方法就是現有app市場上有對應注冊了javascript這個 URL Scheme的app,實際上這種案列也是有的,比如:
Maxthon Cloud Web Browser - Best Internet Explore Experience by Maxthon Technology Limited
也就是安裝了Maxthon瀏覽器的用戶很可能會受到影響。另外一個條件就是需要被攻擊的app使用UIWebView并且設置了Detection Links屬性,在我們實際 中發現滿足這一條件的app是非常多的,比如:微信(已修復)、QQ郵箱(已修復)、outlook、印象筆記、知乎等
0x05 漏洞演示
http://v.qq.com/x/page/x0328nwv6ju.html
0x06 漏洞披露
在這個漏洞發現只是其實存在很多疑惑的對方:“A系統上安裝了B家的軟件導致了C家軟件被攻擊,請問這個是誰家的漏洞?應該報告給誰?”經過分析后我認為是iOS的漏洞,對于Maxthon來說他也算是正規使用URL Scheme,對于那些受影響比較大的C們我還是選擇了同時報告
- 2016.4.12 報告給product-security@apple.com 4.15收到郵件確認收到報告,后續沒有收到任何關于漏洞的修復計劃。
- 2016.4.11 報告給TSRC,得到了TSRC的積極反饋。并陸續修復處理了報告里提到的受BadURLScheme影響的app。
- 2016.4.12 報告給MSRC,收到MSRC反饋改漏洞認定為iOS漏洞已經與蘋果公司溝通,outlook一直沒做處理
- 2016.8.27 KCON 2016演講《BadURLScheme in iOS》
- 2016.9.14 蘋果發布iOS 10升級,測試不受BadURLScheme漏洞影響
- 2016.9.14 BadURLScheme in iOS細節對外全面公開
致謝
最后感謝 呆神、@ogc557、@windknown、@dm557、@Daniel_K4、呂耀佳(行之)、TSRC提供的各種幫助
本文由 Seebug Paper 發布,如需轉載請注明來源。本文地址:http://www.bjnorthway.com/42/
暫無評論