安全场景描述
由于Android系统固有的缺陷,Android应用分发渠道管理机制等问题,导致Android客户端程序很容易被反编译篡改/二次打包,经任意签名后可在各个渠道或论坛中发布,这不仅损害了开发者的知识产权,更可能威胁到用户的敏感信息及财产安全,因此对客户端自身进行完整性校验尤为必要.
威胁等级
中:无重打包校验
影响范围
Android所有版本
测试步骤
第一步:解压包。
java -jar apktool d xxx.apk -f
第二步:修改包里面的值。
如:
我们修改一个值。
第二步:打包。
java -jar apktool b xxx(解压的目录) -o xxx-new.apk
第三步:制作证书
keytool -genkey -alias deft(自定义) -keyalg RSA -validity 2000 -keystore app.keystore
设置密码,然后一直空格,最后y。
jarsigner -verbose -keystore app.keystore -signedjar xxx-new.apk xxx-new.apk (自定义)
然后打开看是否修改成功,一般来说只要修改了,然后打包没报错的话。就可以证明存在漏洞了。
修复建议
- 增加签名验证逻辑
- 增加完整性校验逻辑