Apache Cordova app框架中有漏洞 一键可修改安卓app行为(含POC)(附演示视频)
概述: 趋势科技表示在Apache Cordova app框架中发现一个漏洞,可允许攻击者仅通过点击一个URL就可修改app行为。修改造成的后果包括为app用户带来麻烦、导致app完全崩溃等。
这个漏洞编号为CVE-2015-1835,它影响Apache Cordova 直到4.0.1的版本。Apache已发布安全公告证实该漏洞的存在。这就意味着多数基于Cordova的app都易于被利用,而这些app占据谷歌应用商店所有app的5.6%。
这个漏洞是在Cordova功能中发现的,该功能允许二次配置变量(同时作为参数)从base activity中的intent bundle中设置。这个功能是Apache在2010年10月份与Cordova安装更新0.9.3一起发布的代码更新的一部分。
成功利用的前提条件
成功利用这个漏洞只需两个条件:
1. 至少有一个从Cordova base activity延伸而来的app组件:CordovaActivity 或者配置Cordova框架,这样Config.java并没有被恰当保护,也就是说可从app之外访问。
2. 至少其中一个Cordova支持的参数(除tLogLevel及ErrorUrl外)并未在配置文件config.xml中定义。
如何实施攻击
为了了解漏洞是如何被利用的,需要先了解app中的参数是如何设置的:
二次配置变量也称参数是为开发人员配置app而准备的变量集。这些变量是
内置Cordova App特征的来源,而且应当由app开发人员控制。在运行初始化过程中对这些参数的任何篡改都会扰乱app的正常行为。
安卓(直到4.0.1版本)上的Apache Cordova框架支持一下参数:
l Fullscreen
l DisallowOverscroll
l BackgroundColor
l Orientation
l KeepRunning
l LoadUrlTimeoutValue
l SplashScreen
l SplashScreenDelay
l InAppBrowserStorageEnabled
l LoadingDialog
l LoadingPageDialog
l ErrorUrl
l ShowTitle
l LogLevel
l SetFullscreen
l AndroidLaunchMode
l DefaultVolumeStream
这些参数可在Cordova框架中的config.xml中明确设置,或者不用定义而与默认值隐秘连接。有必要了解的是,许多开发人员都会选择后一种方式,原因是对于app来讲并非所有的这些参数都是必要的。一旦有参数没有在config.xml中明确配置,Cordova框架将会从基本活动中的intent bundle中予以设置。
图表1. App加载了intent bundle并且在CordovaActivity初始化时将其复制到参数
图表2:当config.xml中缺失参数值时,app将参数从bundle中加载
App开发人员通常会被引导在app中扩展CordovaActivity以此让这个混合框架得以运行。图表3. CordovaActivity中启动网页的子类内容
遗憾的是,在本例中,正是这个平常可见的开发人员指南让app易受攻击。活动被延伸意味着可从app之外进行访问,因此攻击者能够将恶意intent bundle注入活动以篡改app的内置特征,或从远程web服务器或从本地被攻陷的app入手。 趋势科技发现所有除LogLevel及ErrorUrl之外的参数都可被利用。Cordova框架以一种特殊方式处理这两个参数从而让其免受漏洞攻击之苦。 我们认为这个漏洞非常容易被利用,因为成功实施攻击所需条件是平常开发人员的做法。多数基于Cordova的app确实扩展了“CordovaActivity”并且很少有app会在配置中定义所有的参数。此外,所有基于Cordova的app都是从Cordova Command-Line Interface(CLI)()自动满足先前提到的前提条件,因此所有的app都容易被攻击。 POC 趋势科技制作了一个常见的远程恶意注入攻击演示,它利用易受攻击安卓设备即华为T950E智能手机中intent URL scheme先前披露的一个漏洞。 以下是远程服务器中的HTML代码: 只需通过访问设备库存浏览器页面,本地实际的Cordova app就可被注入恶意对话并附有推送的题目及短信。具体可见视频演示。 此外也可修改app的其他参数并且为以下案例创建示例视频: l 利用SplashScreen及SpalshScreenDelay在带有“res/drawable”下任何资源的Cordova app中注入启动画面,并随意控制显示时间。 l 利用BackgroundColor篡改Cordova app的背景颜色。 l 利用SefFullScreen篡改Cordova app的显示设置。 l 利用DefaultVolumeStream篡改音量按钮控制器的基本功能(例如通过媒体上的控制默认替代手机通话上的控制) 此外,趋势科技表示还可能通过将特殊数据注入intent bundle的方式远程致 使Cordova app崩溃。 adb shell am start -n com.trendmicro.justademo/.MainActivity --es backgroundcolor ffffff 这次攻击将引发Cordova框架出现例外并且强制app关闭。 图表4. 漏洞利用导致app崩溃 可能的影响 到目前为止,这个漏洞可能会为Cordova app及其用户带来如下影响: 1. 篡改app参数 2. 注入弹出窗口及文本 3. 注入启动画面 4. 修改基本功能 5. 导致app崩溃 虽然这个漏洞影响的是app,但也会对数千个Apache Cordova第三方插件带 来巨大风险,尤其是如果它们的功能严重依赖参数时。 解决方案 趋势科技表示将这个漏洞私下披露给Apache,该公司已发布相关官方公告。 趋势科技建议安卓app开发人员将Cordova框架升级到最新版本(4.0.2)并进行重新构建发布新版本。这会组织攻击者利用该漏洞修改app行为。关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号
随时掌握互联网精彩
随时掌握互联网精彩
赞助链接
排名
热点
搜索指数
- 1 坚持依法治国、依宪执政 7932489
- 2 春节申遗成功 7924614
- 3 儿子谈琼瑶去世细节 7835154
- 4 全国铁路客运首次突破40亿人次 7708150
- 5 琼瑶遗体初步检验结果公布 7630982
- 6 两度发现遇难者遗体博主或将受罚 7507062
- 7 泰国冬阴功申遗成功 7428106
- 8 辞职后 姚明发声 7366394
- 9 外交部回应韩国戒严风波 7256907
- 10 郭晶晶刘诗诗高圆圆坐一起 7153855