Android APP风险之Janus漏洞

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文件。

Android APP风险之Janus漏洞_第1张图片

 

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。

    poc:https://github.com/V-E-O/PoC/tree/master/CVE-2017-13156

    python janus.py *.dex old.apk new.apk

 

4、最后用制作好的盗版APP就能替换安装正版的APP了。

Android APP风险之Janus漏洞_第2张图片

 

总结:这个漏洞解决也很简单,使用V1+V2的签名方式就好了。

你可能感兴趣的:(兴趣爱好)