全军尽墨的Android应用:社会化授权登录及分享安全漏洞

本文揭示了Android应用中社会化授权登录和分享组件的安全漏洞,特别是通过ShareSDK集成时,AppId和AppSecret明文暴露在XML文件中的问题。攻击者可轻易获取这些信息,伪装成合法应用进行恶意授权和分享操作,威胁用户隐私和应用安全。建议开发者加强数据保护,第三方平台改进校验机制。
摘要由CSDN通过智能技术生成

随着微信微博等社会化媒体的火热,第三方登录迅速成为一种快捷注册的方式,社会化分享也成为一种知识快速传播的渠道。在移动端,几乎大多数应用都接入了第三方登录或者分享组件,尤其是微信、QQ、微博三大巨头。这三者都提供了开放平台和SDK来帮助开发者接入这些功能,然而这些真的安全吗?


一、漏洞发现

先说说场景吧,由于业务要求,需要对分享控件做了一次大的升级和重构,然后发现我们分享组件使用的是第三方的ShareSDK(专门封装分享API的组件,大部分童鞋应该都听说过),这本来也没什么问题。

然后,重构过程中遇到一个难以理解的事情,在工程assets目录下面有一个名为ShareSDK.xml的文件,在打开这个文件之后,我震精了,喝到口的咖啡全喷到了键盘上,文件内容是这样的:

这里写图片描述

第三方开放平台的应用注册信息都是明文写在这个文件中的,包括重要的AppId和AppSecret(图内容来自是ShareSDK官方demo)。这个时候,第一个考虑的问题还仅仅是隐私暴露,并没有考虑到安全漏洞方面。

当然,接下来就去看这样设计的原因,原来是ShareSDK内部调用第三方应用授权分享需要这些应用注册信息,为了方便开发者接入,所以采用这种文件静态注册的方式。

作为一个开发者老司机,无论是直觉上还是开发原则上,都隐隐觉得这种方式是有严重问题的。为什么呢?因为assets目录在打包过程中是原封不动地打进APK包内的,任何人不需要任何反编译工具就能直接从APK包内提取出来。那么,如果直接提取出来放到另一款应用中是不是意味着……

想到这里,已经惊出一身冷汗了,世纪大坑!世纪大坑!世纪大坑啊!

接下来就是验证的过程,步骤非常简单。
1、找到一款接入ShareSDK组件的应用,将其安装包APK内的ShareSDK.xml解压提取出来。
2、直接将项目的ShareSDK.xml替换为上一步的文件。
3、调用分享

验证结果:除了微信相关的不能分享,QQ和新浪都分享成功了,并且显示分享内容来自XX应用,XX应用就是我们提取的那款应用了。


二、漏洞原因

当然,如果仅仅是这样,只能说是小漏洞,波及范围并不广。可惜事与愿违,市场上90%以上的应用都在受灾范围内,原因后面分析。

为了帮助理解,我们先来谈一谈社会化分

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值