网络安全 频道

细数Android WebView 的那些神坑

  安卓不太安全啊!你还敢用安卓吗?无所谓?那你听完“茄子”的演讲再这样说算你厉害!9月12日,乌云安全峰会召开,80sec核心成员RAyH4c(茄子)做了《细数Android WebView 的那些神坑》主题演讲。

  以下是RAyH4c(茄子)的演讲全文:

  非常感谢乌云给我们这么一个平台,分享这些对大家有益的攻防的东西。WebView是安全中常用的组件,这个组件的功能是导入一些网页的浏览,像常用的微博、微信,还有手机来装的所有的APP和核心的浏览器,都是用的这个组件。

  首先我有一个引子,就是2012年9月12号Google官方公布的一些漏洞公告。这修复了很多APP的,它只修复了APP漏洞,但是并没修复安卓的问题,这个漏洞可能有一些大家背后不知道的秘密,两年后,正好今天是一个非常巧合的日子,9月12号,也是两年这个时间我们来看Google对它安卓系统做了什么样的修复。

  第一各问题是,Google在APP中内置了XSS漏洞,它是通用XSS漏洞。安卓系统版本4.4中都有通用的XSS漏洞,我这里列出了五到六个,实际上全部公开的至少有几百个。

  我了一个BUG的号是37383,这个漏洞是前段时间乌云网站上炒作的漏洞,应该说这个漏洞实际上影响了安卓4.4以上所有的手机,包括4.3,2.3,就是大家常用的安卓的系统。

  实际上这个漏洞就是我说的两年前9月12号的时候,Google在自己项目中把yp的漏洞修复了,修复了大家可以看到我这个红框的修复,它是把字符串做了相过滤。

  如果大家是企业商品人员,上线前肯定要做一些测试,实际上这个项目是内置于一个QA的测试用秘,大家可以看到这个字符串是空白的。

  我这里有一个演示,来看这个能在大家的安卓手机中导致什么样的危害。我点我的QQ空间说说,在57分的时候没有进行任何说说,但是进入UX页面,在这里出了一个脚本运行,然后我再进入我的说说,会我说说全自动发了一条留言。

  打开这个链接会进行测试页面,我的私信会自动发送。 刚才可以看到我们常用的QQ和微信,实际上是社交化的软件,如果朋友给你发链接你点击后会被劫持。这个漏洞我给大家的安全建议,就是大家如果是4.4以下的手机,赶紧把手机升级到4.4。给QQ或者微博这种使用Web的建议在APP中不相关业务的分离。

  下一个我要讲的是Google在APP中内设的远程代码漏洞,刚才案例可以看到Google是非常不负责任的企业。第二个案例更可恶,刚才我第一页说的,两年前的9月12号Google修复了自己其中的一个漏洞,这个漏洞价值500美元,这个漏洞是日本的一个安全研究者发布的。

  Google为了修复这个漏洞,因为这个漏洞分节点是安卓的4.1版本,这个版本中有内置的加速化切口,也就是你的APP没开发这个接口,但是你用了WebView这个组件,在安全4.1及其以下的都会接入这个。

  在4.1这个版本也是4.2开始,Google在安卓系统中增加一个特性,可以防止这个漏洞反射注入的行为,实际上就是屏蔽掉了代码输入的漏洞,但是这个东西是用安卓的非常严重,每个APP编辑开发者编辑的时候会选择你的兼容性,比如我当前编辑的是大于等于17,Ok,你加入的话,你的APP在4.2以及以上是不存在漏洞的,但是这会存在很严重的兼容性的问题,也就是你的安卓在4.2及其以下运行,也会存在远程代码执行漏洞。

  到底Google对这两年前系统漏洞怎么修复的?它太不负责任了,Google到4.4这个版本才彻底屏蔽了这个问题,就是不管你APP编程是多少,到这个系统上运行你的远程代码漏洞没有,否则的话在4.4以下任意机器上去有这么一个开发的话,都会存在远程执行漏洞。WebView漏洞是做什么呢?

  实际上它就像PC端流行的那样,它可以做到和PC端上挂码的效果是一样的,但是安卓分很多传感器,分很多功能,我们可以操作安卓应用层代码去执行命令,发短信,打电话,获取GPS,任意手机上手工操作的功能都能实现,在实现这些功能之前,如果下面有安卓的开发者应该知道,要操作这个功能是要获取到APP的CONTAX。

  获取这个是导入LEI,然后获取到APP的CONTAX,然后调取APP任意层的功能,就是自己编一些代码,但是这里会存在一些坑儿。

  下面演示一下这个在小米三上是怎样的。这台机器是小米三的最新版,实际上之前报告这个漏洞,现在应该不是最新版了。

  我在远程监听的端口,我用小米内置浏览器打开一个网页,网页会发送一个意图,实际上是打开了一个漏洞的APP组件,它执行代码成功反弹的一个,当然这个是在APP上呈现,当我下载一个给它权限去执行,我们知道,拿到ROOT权限想做什么就做什么了。

  实际上,我说了,第二个漏洞希望企业的一些开发者有自己的一些想法,就是不要在滥用一些英特尔加FACE。除了这两个漏洞之外,Google在两年前9月12号还修复了安卓一个漏洞,如果你使用了WebView这个组件,它在默认设置时会使你本地隐私信息泄露的漏洞。

  这有一个实际案例,像淘宝,其实很简单,我把刚才的过程的代码换了。

  我的建议是你加上本地协议地址的时候,必须重定空白页。我今天要讲的WebView最后一个漏洞,它是安卓签名漏洞。

  我给大家演示一下,用这个漏洞去攻击微信的APP,现在我打开微信的APP,假设我现在点击了微信中的一个消息的网页,这个网页会显示我没有安装的插件,现在我给我的手机安装了一个Flash插件,我截取这个信息,我会往微信APP注入了一个软件,大家看戏Flash认出来了,我现在拿到的权限实际上是微信APP的权限,我现在有一个漏洞可以绕过权限去拨打10086的电话,现在我已经远程控制手机拨打10086成功。实际上这个漏洞要怎么修复?

  也很简单,开发者在开发APP时候强制去掉插件支持,如果是2.3以上系统可以设Off状态以后,就不会随意支持恶意插件或者Flash插件。

2
相关文章