美文网首页
Android常见漏洞解决

Android常见漏洞解决

作者: SoundYoung | 来源:发表于2019-03-21 16:40 被阅读0次

    1 , WebView跨域访问漏洞

    问题描述:

    该漏洞产生的原因是在Android应用中,WebView开启了file域访问,且允许file域对http域进行访问,同时未对file域的路径进行严格限制所致。攻击者通过URL Scheme的方式,可远程打开并加载恶意HTML文件,远程获取APP中包括用户登录凭证在内的所有本地敏感数据

    问题解决:

    在laodurl方法之前,加入如下代码

    try {

        if (Build.VERSION.SDK_INT >= 16) {

            Class<?> clazz = webView.getSettings().getClass();

            Method method = clazz.getMethod(

                    "setAllowUniversalAccessFromFileURLs", boolean.class);

            if (method != null) {

                method.invoke(webView.getSettings(), true);

            }

        }

    } catch (IllegalArgumentException e) {

        e.printStackTrace();

    } catch (NoSuchMethodException e) {

        e.printStackTrace();

    } catch (IllegalAccessException e) {

        e.printStackTrace();

    } catch (InvocationTargetException e) {

        e.printStackTrace();

    }

    2,程序数据任意备份

    问题描述:

    安卓AndroidManifest.xml文件中android: allowBackup为true,app数据可以被备份导出

    解决办法:

    AndroidManifest.xml 配置文件中中设置为android:allowBackup=”false”

    3,硬编码风险

    问题描述:

    硬编码是指将可变变量用一个固定值来代替的方法,用这种方法编译后,如果以后需要更改此变量就非常困难了。最好的方法是,将一个固定数值定义为一个标记,然后用这个特殊标记来取代变量名称。当标记名称改变时,变量名不变。这样,当重新编译整个程序时,所有变量都不再是固定值,这样就更容易的实现了改变变量的目的。

    解决办法:

    不要在类中使用直接的url而是要配置在values中

    4,WebView明文储存密码漏洞

    问题描述:

    WebView默认开启密码保存功能mWebView.setSavePassword(true),如果该功能未关闭,在用户输入密码时,会弹出提示框,询问用户是否保存密码,如果选择"是",密码会被明文保到/data/data/com.package.name/databases/webview.db

    解决办法:webSettings.setSavePassword(false);

    5,WebView远程代码执行漏洞

    问题描述:

    Android API level 17以及之前的版本,由于程序没有正确限制使用addJavascriptInterface方法,远程攻击者可通过使用Java Reflection API利用该漏洞执行任意Java对象的方法。通过addJavascriptInterface给WebView加入一个JavaScript桥接接口,JavaScript通过调用这个接口可以直接与本地的Java接口进行交互。导致手机被安装木马程序,发送扣费短信,通信录或者短信被窃取,甚至手机被远程控制。

    解决办法:

    if(Build.VERSION.SDK_INT=<17){

    webView.removeJavascriptInterface("searchBoxJavaBridge_");

        webView.removeJavascriptInterface("accessibility");

        webView.removeJavascriptInterface("accessibilityTraversal");

    }

    6,Activity最小化特权

    7,Sevice最小化特权



    相关文章

      网友评论

          本文标题:Android常见漏洞解决

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