Android APP风险之Janus漏洞

本文探讨了Android APP中存在的Janus漏洞(CVE-2017-13156),该漏洞允许攻击者在保持原有签名不变的情况下篡改APP代码。影响主要集中在Android 5.1.1到8.0系统。修复措施是采用V1+V2的混合签名方式。复现过程包括找一个V1签名的APP,创建匹配的dex文件,并利用PoC工具生成篡改后的APK。

Android APP仅使用V1签名,可能存在Janus漏洞(CVE-2017-13156),Janus漏洞(CVE-2017-13156)允许攻击者在不改变原签名的情况下任意修改APP中的代码逻辑,影响范围:Android系统5.1.1-8.0。下面为复现:

1、找到一个使用V1方式签名的Android APP。

    最简单直接的判断APP签名方式的方法就是直接查看apk包中的META-INF文件夹下的*.SF文件。

 

2、制作一个符合条件、内部逻辑任意的dex。

 

    制作dex文件其实就是写一个APP,然后从apk包中提取出.dex文件。

    符合条件的意思就是制作的dex文件需要适配于原APP的Androidmanifest.xml文件。主要就是入口activity和application要名称相同,原版APP里Androidmanifest文件里面的ContentProvider和BroadcastReceiver也都要在制作的APP里面写上。否则最后运行的时候会报以下错误。

java.lang.ClassNotFoundException

    注意:写APP的时候不要调用资源文件,逻辑全写在dex文件中,因为写的APP有用的只是dex文件。

 

3、利用poc将第一步中的APP和第二步中的dex文件合并,得到一个签名与原APP完全一致,但内部逻辑可控的盗版APP。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值