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。

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

被折叠的 条评论
为什么被折叠?



