解决方案-越权漏洞检测工具-零基础渗透指南

解决方案-越权漏洞检测工具-零基础渗透指南

友盟SDK越权漏洞分析报告

作者:aqniu日期:2017年12月07日阅:3,755

今年9月22日,360信息安全部的安全团队发现了国内消息推送厂商友盟的SDK存在可越权调用未导出组件的漏洞,并利用该漏洞实现了对使用了友盟SDK的App的任意组件的恶意调用、任意虚假消息的通知、远程代码执行等攻击测试。

经过分析验证,安全团队将此漏洞细节第一时间提交给友盟进行修复。10月18日,友盟官方发布最新版3.1.3修复漏洞。为了确保受此漏洞影响的终端用户有充分的时间进行安全更新,12月6日,安全团队首次向外界公开披露漏洞信息。

在360显危镜后台数据库中根据该含有漏洞版本的SDK的特征值查询确认,发现约有3万多App受此漏洞的影响,根据包名去重后约7千多款App产品,涉及多种类型的应用。鉴于该消息推送SDK使用范围较广,且受影响App多是与终端用户日常生活息息相关的应用,一旦被恶意攻击者利用危害将是非常严重的。

基于该漏洞,可以实现对终端用户推送虚假诈骗信息、远程窃取用户终端设备中的敏感数据(例如通讯录、照片、账号密码等数据)等功能。此外,该漏洞的危害依赖于应用本身提供的功能而有所不同,因此对终端用户的攻击方式亦是姿态各异,造成的危害也是多种多样的。

此漏洞已经得到友盟官方修复,请用户及时更新智能手机上安装的各类App,防止手机里的隐私数据和财产被不法分子轻易窃取。

前言

近年来,随着移动互联网的高速发展,智能终端设备已经走入人们生活的方方面面。在和iOS两大移动平台阵营中,系统以其开源性、易开发、丰富的硬件等优势占据了市场上约80%的份额。

系统中提供的应用丰富多样,且功能复杂,几乎所有的应用都采用了第三方的SDK以加速其开发周期,节约成本。第三方SDK包括支付、统计、广告、社交、推送、地图类等,其在加速产品成型时,也引入了许许多多的安全问题。下图所示内容为经360显危镜后台查询的几款常用SDK使用情况统计数据,从图中可以看出使用了该SDK开发的App非常多。

下文以友盟消息推送SDK为例,详细介绍一下第三方SDK在缺乏产品安全审计的情况下存在的高危漏洞风险,希冀以此能督促第三方SDK厂商在产品安全性方面能投入更多的精力。

SDK介绍

友盟 Push SDK是友盟互联网数据服务SDK其中用来做消息推送的模块之一,基于【友盟+】全域数据建立与用户精准直接沟通的渠道,将App的内容主动推送给终端用户,让用户实时实地的获取相关信息,有效提升用户活跃和忠诚度。由于其定位精准、集成快速等优点,目前有多个知名App在使用U-PUSH服务。下图所示为官网介绍的使用了友盟消息推送SDK的App。

技术分析

友盟的消息推送SDK中有一导出组件存在漏洞,可被越权调用并利用该组件访问任意组件,甚至未导出的亦可。随后,利用该漏洞调用友盟其他未导出的组件,可进一步越权调用任意导出和未导出的,进而扩大了该漏洞的攻击面,为攻击者提供了更大范围的攻击可能性。

下文详述了友盟的消息推送SDK中可越权调用所有非导出组件的漏洞技术原理,并据此详述了如何实现非导出组件恶意调用、恶意消息通知、远程代码执行等攻击行为。

漏洞起因

友盟最新的消息推送SDK中集成的说明文档中的demo里,文件中导出了一个——,据推测这个服务是为了使用了PUSH SDK的App之间相互唤醒使用的,详情如下图所示。

这个有个实现的抽象方法如下:

我们能看到外部接收了携带的body数据(JSON格式),交给构造后得到v3,如果 为“”的话,可通过设置和参数能拉起任意未运行的。其中函数的结构如下:

漏洞利用

通过构造如下POC,可访问App内所有的组件,甚至未导出的。而且SDK提供了一个“贴心”的功能,接收额外的参数,封装到新的后发送给拉起的。

*限制一点的只能 类型的数据,但是也足够利用了。PoC:

SDK有几个强大功能:接收推送的消息,下载图片或接收文本进行通知展示。点击通知后有几个可选动作,打开URL、打开指定、运行其他App和一个自定义的动作。我们通过一个未导出的——进行进一步的利用。

打开的POC:

利用实例1——通用弹出钓鱼通知

利用上面打开任意的POC,可以弹出任意通知,这个通知的图标,文本都是可以定制的,而且用户长按通知也会发现这个通知是漏洞App发出的。点击通知,我们可以跳转url打开一个钓鱼页面或是钓鱼。

利用实例2——隔山打牛,一点资讯下载任意压缩包

通过检索平台搜索后发现,App一点资讯是存在这个漏洞的。进一步挖掘过程中,发现App有一个未导出的——,详情如下。

通过构造合法的参数,可以利用组件实现下载自定义的zip文件并解压到当前应用沙箱目录中,EXP代码如下:

运行成功后,下载zip文件夹并解压到相关目录,这个目录里存的是App所使用的html页面,而整个zip里文件都是我们能够修改和替换。现在做钓鱼页面,加各种js代码都没问题了。

随后,通过对该App代码的深度挖掘分析,我们发现该应用提供了动态加载插件的功能,且在对加载的插件解压时未做过滤导致存在目录穿越漏洞。结合该漏洞,我们可以在加载插件过程中覆盖该App的lib文件,注入自己的恶意代码,进而造成远程代码执行。不言而喻,远程代码执行对用户的危害是非常严重的,可远程控制用户终端设备,远程窃取用户隐私数据,甚至其他任意的恶意行为。下图所示为结合上述漏洞实现的对用户终端设备远程获取隐私敏感数据的攻击截图。

漏洞演示视频如下:

影响范围:

通过分析发现,有漏洞的组件是在新版3.1.X版本中引入的。我们据此确定以下的特征值,并在360显危镜后台数据库中查询受该漏洞影响的App:组件中包含并且在apk中包含字符串。

在360显危镜后台数据库中,按该漏洞的特征值查询后发现约3万多的App受此漏洞的影响,其中不乏大公司的产品主流产品,对用户影响巨大。

修复建议:

1. 如果组件导出是非必要的,将漏洞组件设置为不导出;

2. 如果组件是必须导出的,在加上:增加权限校验,至少为级别;

3. 官方已有修复版本更新,请及时更新到最新版本。

~

网络安全学习,我们一起交流

~

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值