检测目的 检测应用是否存在WebView File域同源策略绕过漏洞。
风险等级 高
威胁描述 应用程序一旦使用WebView,同时支持File域,并打开了对JavaScript的支持,就能利用JavaScript的延时执行,绕过File协议的同源检查,并能够访问应用程序的私有文件,导致敏感信息泄露。
检测结果 存在风险
结果描述 该应用存在WebView File域同源策略绕过漏洞。检测文件总数5955个,检测出62处风险。
出现次数 62次
检测详情 总共检测文件 5955 个,存在风险点 62 个。
1.使用静态检测引擎对APK进行反编译。
2.扫描反编译后的代码文件,提取WebView相关内容。
3.对提取的WebView代码进行检测,发现没有禁用File协议或者没有禁止File协议调用JavaScript。
第1处:
文件:
io.dcloud.share.ShareAuthorizeView.java
第2处:
文件:
io.dcloud.common.adapter.ui.webview.WebJsEvent$7.java
第3处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent$2.java
第4处:
文件:
io.dcloud.feature.weex.adapter.webview.DCWXWebView$3.java
第5处:
文件:
io.dcloud.common.adapter.ui.webview.WebJsEvent.java
第6处:
文件:
io.dcloud.WebviewActivity$2.java
第7处:
文件:
com.tencent.open.a$a.java
第8处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent$7.java
第9处:
文件:
com.tencent.open.web.security.c.java
第10处:
文件:
io.dcloud.WebviewActivity$3.java
第11处:
文件:
io.dcloud.feature.weex.adapter.webview.DCWXWebView$2.java
第12处:
文件:
io.dcloud.common.adapter.ui.webview.WebJsEvent$6.java
第13处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent$9.java
第14处:
文件:
com.alipay.sdk.widget.t.java
第15处:
文件:
io.dcloud.feature.weex.adapter.webview.DCWXWebView.java
第16处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent$3.java
第17处:
文件:
com.tencent.connect.auth.a$a.java
第18处:
文件:
io.dcloud.common.adapter.ui.webview.WebJsEvent$3.java
第19处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent$10.java
第20处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent$6.java
第21处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent.java
第22处:
文件:
io.dcloud.feature.ad.dcloud.ADWebView$1$1.java
第23处:
文件:
io.dcloud.common.DHInterface.IWebview.java
第24处:
文件:
io.dcloud.common.adapter.ui.AdaUniWebView.java
第25处:
文件:
com.tencent.connect.auth.a$a$2.java
第26处:
文件:
io.dcloud.common.adapter.ui.webview.WebJsEvent$8.java
第27处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent$1.java
第28处:
文件:
io.dcloud.feature.weex.adapter.webview.DCWXWebView$1.java
第29处:
文件:
io.dcloud.WebviewActivity$2$1.java
第30处:
文件:
com.alipay.sdk.app.b.java
第31处:
文件:
com.tencent.open.web.security.b.java
第32处:
文件:
com.alipay.sdk.widget.WebViewWindow.java
第33处:
文件:
com.alipay.sdk.util.n.java
第34处:
文件:
io.dcloud.common.adapter.ui.webview.SysWebView.java
第35处:
文件:
com.tencent.open.a.java
第36处:
文件:
com.taobao.weex.ui.view.WXWebView$2.java
第37处:
文件:
io.dcloud.WebviewActivity$2$2.java
第38处:
文件:
io.dcloud.common.DHInterface.IDCloudWebviewClientListener.java
第39处:
文件:
io.dcloud.common.adapter.ui.webview.WebJsEvent$5.java
第40处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent$4.java
第41处:
文件:
io.dcloud.WebviewActivity.java
第42处:
文件:
io.dcloud.feature.ad.dcloud.ADWebView.java
第43处:
文件:
com.taobao.weex.ui.view.WXWebView$1.java
第44处:
文件:
io.dcloud.common.sonic.SonicSessionClientImpl.java
第45处:
文件:
io.dcloud.feature.ad.dcloud.ADWebView$1$2.java
第46处:
文件:
com.tencent.connect.auth.a$a$3.java
第47处:
文件:
io.dcloud.common.adapter.ui.webview.WebJsEvent$9.java
第48处:
文件:
com.tencent.open.c.b.java
第49处:
文件:
com.alipay.sdk.widget.h.java
第50处:
文件:
com.taobao.weex.ui.view.WXWebView.java
第51处:
文件:
io.dcloud.common.adapter.ui.AdaWebview.java
第52处:
文件:
io.dcloud.common.adapter.ui.webview.WebJsEvent$10.java
第53处:
文件:
com.tencent.open.c$a.java
第54处:
文件:
com.tencent.open.TDialog$FbWebViewClient.java
第55处:
文件:
com.alipay.sdk.widget.s.java
第56处:
文件:
io.dcloud.common.adapter.ui.webview.WebJsEvent$4.java
第57处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent$5.java
第58处:
文件:
io.dcloud.common.adapter.ui.webview.WebLoadEvent$8.java
第59处:
文件:
com.tencent.connect.auth.a$a$1.java
第60处:
文件:
io.dcloud.WebviewActivity$1.java
第61处:
文件:
io.dcloud.feature.ad.dcloud.ADWebView$1.java
第62处:
文件:
com.taobao.weex.ui.view.WXWebView$3.java
解决方案
1.对于不需要使用File协议的应用,禁用File协议,显式设置webView.getSettings().setAllowFileAccess(false)。
2.对于需要使用File协议的应用,禁止File协议调用JavaScript,显式设置webView.getSettings().setJavaScriptEnabled(false)。
2 个回复
老冰棍
5 app 本身就需要本地加载js,怎么搞?
1***@qq.com - 你好
这个具体要怎么拒绝啊