漏洞原理:
WebView对象的行为是在WebSettings类中设置的,如果设置不正确,攻击者可以利用此漏洞打破Android沙箱隔离机制,通过一个APP应用程序攻击另一个APP应用程序来阻止其他APP应用程序
主要是android.webkit.WebSettings类的setAllowFileAccess ()、setJavaScriptEnabled )、setAllowFileAccessFromFileURLs )和setall setal 4种方法配置不正确(webview使用file协议且可以使用javaScript )的风险,以及与Activity组件一起暴露漏洞进行攻击。
setAllowFileAccess (
启用或禁用Webview中的文件访问。 默认值为true
webView.getSettings ().setallowfileaccess ) ) true;
setJavaScriptEnabled (
设置webview是否启用javascript运行。 默认值为false,如果设置为true,则启用javascript运行。
webview.getWebSettings ().setjavascriptenabled ) ) true;
setAllowFileAccessFromFileURLs (
设置是否允许用通过file url加载的文件中的Js代码读取其他本地文件。
请注意,如果//getallowuniversalaccessfromfileurls ()的值为true,则忽略此设置的值。 要启用最严格的安全策略,必须禁用此设置:
webView.getSettings ().setallowfileaccessfromfileurls ) ) false;
//Api等级15以下,默认为true
//Api等级Jelly_bean(API等级16、安卓4.1版、中文翻译果冻豆)以上默认为false
setallowuniversalaccessfromfileurls ()
设置在file url中加载的Javascript是否可以访问其他源代码(包括http、https等源代码)
webView.getSettings ().setallowuniversalaccessfromfileurls ) ) true;
//Api等级15以下,默认为true
//Api等级Jelly_bean(API等级16、安卓4.1版、中文翻译果冻豆)以上默认为false
漏洞危害:
攻击者利用配置不正确的风险,让用户单击攻击链接,在本地生成html文件,然后使用intent对象将恶意html的文件URL传递给被攻击app可导出的组件。 使被攻击app加载本地生成的html文件中的恶意js,达到窃取存储在用户其他app应用程序专用目录中的敏感喜悦和配置文件的目的。 导致隐私信息的泄露,对IM类软件导致聊天信息、联系方式等重要信息的泄露,对浏览器类软件多是cookie信息的泄露。
以某个APP为例,有形成该漏洞的原因和进行测试的方法。
1 )如图5所示,webview类继承webview类,设置为允许file协议,并启用了javascript执行;
2 )如果查看使用此X5Webview类的Activity,就会发现URL来自intent传递的对象,并且在不执行白名单处理的情况下直接启动了Activity。
3、然后发现这个活动可以导出。 图:
根据以上三点,攻击者可以使用恶意链接生成本地恶意攻击html,并将恶意html的file路径传递给可导出组件。 当此组件访问html文件并运行其中的恶意js时,攻击者将检索专用目录中的文件。
最后编辑: 2018-01-14作者: admin
这位作者好像有点懒,什么也没留下。