0x00 科普
WebView(網路視圖)android中載入顯示網頁的重要組件,可以將其視為一個瀏覽器。在kitkat(android 4.4)以前使用WebKit渲染引擎載入顯示網頁,在kitkat之後使用Google自家核心chromium。
Uxss(Universal Cross-Site Scripting通用型XSS)UXSS是一種利用瀏覽器或者瀏覽器延伸漏洞來製造產生XSS的條件並執行代碼的一種攻擊類型。可以到達瀏覽器全域遠程執行命令、繞過同源策略、竊取使用者資料以及劫持使用者的嚴重危害。
同源策略所謂同源是指,網域名稱,協議,連接埠相同,瀏覽器或者瀏覽器延伸共同遵循的安全性原則。詳見: http://drops.wooyun.org/tips/151
0x01 事件
近段時間android UXSS漏洞持久性爆發涉及android應用程式套件括主手機流瀏覽器、聊天軟體等。下面截取幾個案例。
WooYun: 搜狗手機瀏覽器跨域指令碼執行漏洞之一
WooYun: 手機QQ安卓版兩處跨域問題
WooYun: 獵豹/360/歐鵬/百度/遨遊等手機瀏覽器安卓用戶端UXSS(影響android4.4以下版本)
WooYun: UC瀏覽器Android最新版(4.4)跨域漏洞(不受系統版本限制)
引用某廠商對此漏洞的回應
非常感謝您的報告,此問題屬於andriod webkit的漏洞,請盡量使用最新版的andriod系統。
的確漏洞產生的原因是因為kitkat(android 4.4)之前webview組件使用webview核心而遺留的漏洞。使用最新的android系統當然安全性要更高而且運行更流暢,但是有多少人能升級或者使用到相對安全的android版本了。下圖來自Google官方2014.09.09的統計資料。
看起來情況不是太糟糕,有24.5%的android使用者是處於相對安全的版本下。但是官方資料的是來google play明顯和大陸水土不服。國內就只能使用相對靠譜的本土第三方統計了。下圖是umeng八月的統計情況
能使用到相對安全的android系統的使用者不到8%,那麼問題來了~我要換一個什麼的樣的手機了。忘記我是個?潘苛耍?剖只?薹ㄉ?兜 kitkat也沒錢換手機。那就只能選擇使用相對安全的應用來盡量避免我受到攻擊。於是我們收集了一些命中率較高的POC來驗證到底哪些app更靠譜一些。
https://code.google.com/p/chromium/issues/detail?id=37383
https://code.google.com/p/chromium/issues/detail?id=90222
https://code.google.com/p/chromium/issues/detail?id=98053
https://code.google.com/p/chromium/issues/detail?id=117550
https://code.google.com/p/chromium/issues/detail?id=143437
https://code.google.com/p/chromium/issues/detail?id=143439
CVE-2014-6041
為了方便大家也能夠方便測試其他應用我們嘗試寫出一個自動化的指令碼來完成此項工作。
0x02 測試
http://zone.wooyun.org/content/15792
下圖為360瀏覽器在android 4.2.2下的測試結果
下圖為搜狗瀏覽器在android 4.4.3下的測試結果
測試代碼將放入github供大家參考,歡迎大神來修改
代碼地址: https://github.com/click1/uxss
線上測試地址: http://uxss.sinaapp.com/index.php
0x03 對比
我們對主流手機瀏覽器進行了橫向對比,測試對象包括:UC瀏覽器、搜狗瀏覽器、百度瀏覽器、360安全瀏覽器、歐鵬瀏覽器、遨遊雲瀏覽器、獵豹瀏覽器。測試結果見下圖。
0x04 建議
廠商(僅供參考):
1、服務端禁止iframe嵌套 X-FRAME-OPTIONS:DENY 。詳見:http://drops.wooyun.org/papers/104
2、用戶端使用 setAllowFileAccess(flase) 方法禁止webview訪問本地區。詳見: setAllowFileAccess(boolean)
3、用戶端使用onPageStarted (WebView view, String url, Bitmap favicon) 方法在跳轉錢進行跨域判斷。詳見[onPageStarted (WebView view, String url, Bitmap favicon)][8]
4、用戶端對iframe object標籤屬性進行過濾。
使用者:
1、使用漏洞較少的app,及時更新app。
2、不要隨意開啟一些莫名其妙的連結。
3、有錢你就買新手機吧,android L馬上出來了。(可以通過google play推送安全補丁,呵呵)