com.android.coolwind,Android验签(证书)问题归纳

一、Apk升级dos漏洞

问题简述:Android系统在安装应用时,会进行如下校验

1、计算除META-INF\ 文件夹以外所有文件的hash,同MANIFEST.MF文件中的hash做比对。不同,则拒绝安装;

2、计算MANIFEST.MF的hash,

以及MANIFEST.MF中每一个hash的hash,同.SF文件中的hash做比对。不同,则拒绝安装;

3、从.RSA

文件中取出开发者证书,然后从证书中提取开发者公钥,用该公钥对.SF文件做数字签名,并将结果同.RSA文件中的.SF签名进行比对。不同,则拒绝安装。

但校验过程,是依次计算每个Android源文件的hash,然后跟MANIFEST.MF中对比。由于并没有计算整体hash,这个过程中,MANIFEST.MF文件中是可以有多余hash值的。也就是说使用压缩软件打开一个apk文件,然后删除其中的除META-INF文件夹下的文件,之后这个apk仍然是可以被Android系统验签通过,成功安装,但是却运行不起来,dos攻击就发生了。

攻击场景:

1、读取目标app的apk文件,(如下,apk文件是所以用户可读取的)

root@Coolpad9976A:/ # ls -l /data/app

ls -l /data/app

-rw-r--r-- system system 10726833 2015-12-19 10:04

baidumapsdk.demo-2.apk

-rw-r--r-- system system 3069109 2015-11-17 18:06

cn.itools.tool.market-1.apk

-rw-r--r-- system system 23843357 2016-01-05 15:09

com.achievo.vipshop-1.apk

-rw-r--r-- system system 7541775 2015-10-09 16:18

com.android.coolwind-1.apk

-rw-r--r-- system system 2988751 2015-10-28 11:25

com.android.reverse-1.apk

2、删除apk中的某些文件

3、使用系统软件安装程序,提示用户升级安装应用

Intent intent = new Intent(Intent.ACTION_VIEW);

intent.setDataAndType(Uri.fromFile(new File(fakeapk)),

"application/vnd.android.package-archive");

4、安装app过程中,新应用的签名信息必须与已装应用的签名完全一样,而且新应用的版本号不能低于已装应用

二、验证过程中,没有校验开发者证书本身的完整性,所以可以更改证书过期时间、证书主体(subject,开发者标识)替换

三、验证过程,没有验证META-INF文件夹下的文件,可以隐藏evil code

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值