3.2.6 ZipperDown漏洞
检测目的 检测应用中是否存在ZipperDown漏洞。
风险等级 高
威胁描述 当前大量应用均会读取zip压缩包进行相关业务,最常见的场景就是从服务器下载压缩包,进行资源、代码热更新。在解压zip包时,如果对文件名没有进行限制,通过在文件名加上“../../”前缀的方式,可以将文件解压到任意路径。如果攻击者用远程劫持或者本地替换等方式将APP将要加载的正常zip包替换为带有路径前缀的恶意zip包,而APP又未对解压文件的文件名称进行处理,则攻击者可以对应用资源、代码进行任意篡改、替换,从而实现远程代码劫持等。
检测结果 存在风险
结果描述 该应用存在ZipperDown漏洞。检测总文件数6482个,检测出1处风险。
出现次数 1次
检测详情 总共检测文件 6482 个,存在风险点 1 个。
1.使用静态检测引擎对APK进行反编译。
2.扫描反编译后的代码文件,提取zip解压缩相关代码。
3.对提取的代码进行检测,发现没有过滤“../”路径。
第1处:
文件:
io.dcloud.common.util.ZipUtils.java
代码:
.method public static upZipFile(Ljava/io/File;Ljava/lang/String;)V invoke-virtual {v2}, Ljava/util/zip/ZipEntry;->getName()Ljava/lang/String;
解决方案 1. 对zip包进行解压操作时,在获取文件名后,添加过滤代码对文件名中可能包含的”../”进行过滤判断。
2. 使用通信协议加密技术,对通信过程中的数据进行加密保护,保证数据不被篡改。
3. 建议客户端与服务端使用加密通道进行数据交互,并对传输数据进行完整性校验,防止zip包被拦截替换。
- 发布:2024-09-27 17:52
- 更新:2024-09-28 04:40
- 阅读:130
不知道你用的什么安全检测,是不是为了过等保。
三方评测机构,不懂DCloud产品,经常乱搞。
DCloud有解压api,plus.zip
,你要解压什么、解到哪里,我们是不能限制的,我们是透传os的能力出来。
我们限制了”../”,那你真的需要解压”../”的文件怎么办?
所以核心是你的调用plus.zip的js代码是否安全,是否过滤了不安全的目录。但三方评测机构,扫描的都是原生代码,肯定不知道js代码是否安全。
DCloud这边有等保服务,可以保过。详见
建议退单,改用DCloud的等保评测。
另外你也可以使用uni加固。
加固的好处是java代码加密了,那些扫描java代码检测的工具无法识别代码,就无法报风险了。但这个不算正道,治本还是得用靠谱的评测机构。
-
2***@qq.com (作者)
意思是 安全加固可以让其无法检测到java文件,即不会出现ZipperDown漏洞io.dcloud.common.util.ZipUtils.java
2024-09-29 10:05