android webview 跨域,实战Webview跨域访问风险
漏洞原理:
WebView對(duì)象的行為是通過WebSettings類進(jìn)行設(shè)置的,如果配置不當(dāng),攻擊者就可以利用該漏洞可以打破Android沙盒隔離機(jī)制,從而通過某個(gè)應(yīng)用來攻擊其它應(yīng)用,盜取其它應(yīng)用本地保存的配置文件、敏感信息等。
主要利用了android.webkit.WebSettings類中setAllowFileAccess()、setJavaScriptEnabled()、setAllowFileAccessFromFileURLs()、setAllowUniversalAccessFromFileURLs()四個(gè)方法配置不當(dāng)(允許webview使用file協(xié)議并允許使用javaScript)的風(fēng)險(xiǎn),并配合Activity組件暴露漏洞進(jìn)行攻擊。
setAllowFileAccess()
// 啟用或禁用Webview中的文件訪問,默認(rèn)是true
webView.getSettings().setAllowFileAccess(true);
setJavaScriptEnabled()
// 設(shè)置webview是否啟用javascript執(zhí)行,默認(rèn)是false,設(shè)置為true就是啟用javascript執(zhí)行。
webview.getWebSettings().setJavaScriptEnabled(true);
setAllowFileAccessFromFileURLs()
// 設(shè)置是否允許通過 file url 加載的文件中Js代碼讀取其他的本地文件。
// 需要注意的是如果getAllowUniversalAccessFromFileURLs()的值為true,則此設(shè)置的值將被忽略。要啟用最嚴(yán)格的安全策略,應(yīng)該禁用此設(shè)置:
webView.getSettings().setAllowFileAccessFromFileURLs(false);
// Api級(jí)別15及以下,默認(rèn)是true
// Api級(jí)別JELLY_BEAN(API級(jí)別16,android4.1版本代號(hào),中文翻譯果凍豆)及以上默認(rèn)是false
setAllowUniversalAccessFromFileURLs()
// 設(shè)置是否允許通過 file url 加載的 Javascript 可以訪問其他的源(包括http、https等源)
webView.getSettings().setAllowUniversalAccessFromFileURLs(true);
// Api級(jí)別15及以下,默認(rèn)是true
// Api級(jí)別JELLY_BEAN(API級(jí)別16,android4.1版本代號(hào),中文翻譯果凍豆)及以上默認(rèn)是false
漏洞危害:
攻擊者利用配置不當(dāng)?shù)娘L(fēng)險(xiǎn),誘導(dǎo)用戶點(diǎn)擊攻擊鏈接,在本地生成html文件,并使用intent對(duì)象傳遞該惡意html的file url給被攻擊app可導(dǎo)出的組件,使被攻擊app加載本地生成html文件中的惡意js,達(dá)到盜取用戶其它應(yīng)用私有目錄中保存的敏感欣喜、配置文件的目的。會(huì)導(dǎo)致隱私信息泄露,針對(duì)IM類軟件會(huì)導(dǎo)致聊天信息、聯(lián)系人等等重要信息泄露,針對(duì)瀏覽器類軟件,則更多的是cookie信息泄露。
以某個(gè)app為例,可一下形成該漏洞的原因,以及進(jìn)行測(cè)試的方法。
1,如圖X5WebView類繼承了webview類,并且設(shè)置了允許file協(xié)議,以及啟用了javascript執(zhí)行;
2,再看看使用該X5Webview類的Activity,發(fā)現(xiàn)URL是從intent傳遞的對(duì)象中獲取的,并且沒有做任何白名單處理,直接啟動(dòng)了Activity;
3,并且發(fā)現(xiàn)該activity是可導(dǎo)出的,如圖:
基于以上三點(diǎn),攻擊者可以用惡意鏈接實(shí)現(xiàn)生成本地惡意攻擊html,并傳遞惡意html的file路徑給可導(dǎo)出的組件,該組件加載訪問html文件執(zhí)行其中的惡意js,會(huì)導(dǎo)致私有目錄中的文件被攻擊者獲取。
最后編輯:2018-01-14作者:admin
這個(gè)作者貌似有點(diǎn)懶,什么都沒有留下。
總結(jié)
以上是生活随笔為你收集整理的android webview 跨域,实战Webview跨域访问风险的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: javascript 压缩工具 esc.
- 下一篇: java开发srm系统_SRM系统需要实