关于ZipperDown漏洞的分析报告

近日,国家计算机网络应急技术处理协调中心上海分中心(SHCERT)了解到两款iOS平台的第三方解压库(SSZipArchive、ZipArchive)存在漏洞,解压时未对解压路径进行检查。在不安全的Wi-Fi环境中,攻击者通过劫持HTTP流量,将应用下载的zip包替换为包含恶意代码的zip包,从而利用该漏洞解压恶意zip包内的文件,覆盖应用文件夹内的内容,影响用户正常使用。对于使用了JSPatch或其他热更新技术的应用,利用该漏洞还能进一步导致代码执行。

01

漏洞详情

SSZipArchive库(https://github.com/ZipArchive/ZipArchive)中的[SSZipArchiveunzipFileAtPath:toDestination:overwrite:password:error:delegate:] 函数在解析zip文件获取完整文件路径时,未检查是否包含“../../../”等上层文件路径,代码如下所示:

ZipArchive库(https://code.google.com/archive/p/ziparchive)中的[ZipArchive UnzipFileTo:overWrite:] 函数在解析zip文件获取完整文件路径时,未检查是否包含“../../../”等上层文件路径,代码如下所示:

漏洞案例

02

以微博(8.4.3版本)为例,该应用使用了SSZipArchive解压库,每次打开微博应用时,会获取资源,请求下载zip包。

通过流量劫持,将http请求下载的zip包替换为包含恶意JS脚本的zip包,如下图所示:

微博应用会调用SSZipArchive库解压该zip包,随后可以发现该恶意JS脚本已被成功写入应用目录,并成功运行,如下图所示:

结合该案例,可以将漏洞利用条件总结如下:

1.应用使用了存在漏洞第三方解压库;

2.应用通过http协议下载zip包资源;

3.用户在不安全的Wi-Fi环境中被劫持流量;

应用如使用JSPatch或其他热更新技术,可进一步导致代码执行。

03

漏洞影响

该漏洞形态灵活,攻击场景与受影响应用业务场景相关,需要通过人工分析才能确认漏洞是否存在,疑似受影响应用列表可在ZipperDown漏洞网站(https://zipperdown.org/)查询,近16000万个应用疑似受该漏洞影响。

处置修复建议

04

建议应用开发者核查自身应用第三方解压库使用情况,推荐使用https协议下载资源,并在解压时对解压路径进行校验,严格限制“../../../”等上层文件路径的使用。

建议普通用户不要使用未加密的第三方公共Wi-Fi网络。

国家计算机网络应急技术处理协调中心上海分中心

2018年5月16日

感谢上海犇众信息技术有限公司提供

技术分析支持

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180517G0NAAW00?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

同媒体快讯

扫码关注云+社区

领取腾讯云代金券