简介
Apktool未正确解析XML导致XXE漏洞。以下做一个简单的分析和演示Apktool在进行回编译操作时产生XXE漏洞的过程。
漏洞描述
潜在的攻击者可通过构造XML文件,在受影响版本的Apktool对该XML文件解析时触发,造成受害者电脑上任意文件的访问。
演示
java -jar ~/Downloads/apktool_2.2.2.jar b ApkIDE_test -o ApkIDE_test_modified1.apk
从而修复了漏洞。
漏洞分析
先来一张修复之后的commit的diff图
在 brut.apktool/apktool-lib/src/main/java/brut/androlib/res/xml/ResXmlPatcher.java
docFactory.setFeature(FEATURE_DISABLE_DOCTYPE_DECL, true);
private static final String FEATURE_DISABLE_DOCTYPE_DECL = "http://apache.org/xml/features/disallow-doctype-decl";
作者的log为“Prevent doctypes declarations”,即不允许XML中的doctypte声明了。
代码追踪
java -jar ~/Downloads/apktool_2.2.2.jar b ApkIDE_test -o ApkIDE_test_modified1.apk
ApkIDE_test
)和最终生成的apk文件的路径,作为参数传入Androlib的build(ExtFile appDir, File outFile)方法。docFactory.setFeature(FEATURE_DISABLE_DOCTYPE_DECL, true);
从而避免了由于对DOCTYPE的解析导致的XXE漏洞。
已知受影响版本
Apktool v2.2.1 https://github.com/iBotPeaches/Apktool/releases/download/v2.2.1/apktool_2.2.1.jar
Apktool v2.2.2: https://github.com/iBotPeaches/Apktool/releases/download/v2.2.2/apktool_2.2.2.jar
给开发者和安全分析人员的建议
使用apktool v2.2.3及其以上版本;
检查所有集成了apktool的工具,确保其依赖的apktool在v2.2.3及其以上版本。
参考:
https://research.checkpoint.com/parsedroid-targeting-android-development-research-community/
http://www.theregister.co.uk/2017/12/06/java_and_android_vulns/
发表评论
您还未登录,请先登录。
登录