码迷,mamicode.com
首页 > 移动开发 > 详细

Android安全编码

时间:2018-05-31 00:24:18      阅读:189      评论:0      收藏:0      [点我收藏+]

标签:java反射   null   执行   IV   应用   mda   编码   方法   接口   

  • WebView远程代码执行
    • 在API16(Android 4.2 )及之前的系统上,如果使用WebView.addJavaScriptInterface方法来实现通过JavaScript调用应用本地java接口时,由于系统没有对注册的Java类方法调用做任何限制,导致攻击者可以通过使用Java反射API调用该漏洞来执行任意java对象的方法,从而达到攻击的目的。在JavaScript中注入java对象injectedObject的漏洞代码如下:
        WebView webView = new WebView(this);
              webView.getSettings().setJavaScriptEnabled(true);
              webView.addJavascriptInterface(this,"injectedObject");
              webView.loadUrl("http://www.asce1885.com/index.html");
      
    • 攻击者html页面如下,可以获得getRuntime方法,从而执行一系列shell命令,为所欲为:
      <!DOCTYPE html>
      <html lang="en">
      <head>
          <meta charset="UTF-8">
          <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
          <script type="text/javascript">
              function execute(cmdArgs) {
                  return injectedObject.getClass().forName("java.lang.Runtime").getMethod("getRuntime",null).invoke(null,null).exec(cmdArgs);
              }
          </script>
          <title>Title</title>
      </head>
      <body>
      
      </body>
      </html>
      

 

  • 该漏洞的解决方案如下:
    • api>16 .android给出的解决方案 在Java类的方法上使用@JavascriptInterface注解
    • api<=16 强烈建议不要再使用addJavascriptInterface接口,转而使用safe-java-js-webview-bridge这个函数库
    • 移除Android系统内部的如下默认接口(这个搞不明白

Android安全编码

标签:java反射   null   执行   IV   应用   mda   编码   方法   接口   

原文地址:https://www.cnblogs.com/endian11/p/9114094.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!