0x01 漏洞危害

  1. 在使用 HTTP 下载 zip 包并使用有问题的第三方库 unzip 时,攻击者通过劫持 HTTP 流量,可以导致 APP 下载一个恶意的 zip 包,在解压 zip 包时可以任意覆盖 APP 文件夹内的内容,从而影响用户正常使用。

  2. 对使用了JSPatch 或其他热更新技术的 APP,可能可以导致控制代码执行。

0x02 漏洞详情

  第三方 unzip 库,在解压 zip 包时未检查解压路径,当使用这些第三方的库解压时未过滤包含”../../../”的文件路径以及符号链接文件,导致APP 自身的其它文件被替换。

  可能存在的第三方库:

1. SSZipArchive

  [unzipFileAtPath:toDestination:overwrite:password:error:delegate:] 函数在解析 zip 文件获取完整文件路径时,没有考虑到文件名中存在”../../../“的情况

2. ZipArchive

  [ZipArchive UnzipFileTo:overWrite:] 函数在解析 zip 文件获取完整文件路径时,没有考虑到文件名中存在”../../../“的情况

0x03 修复方案

  1. 在解压时考虑路径穿越问题,对最终路径做”../../../”文件名和符号链接的过滤。

  2. 严格使用 https 下载资源, 或者对下载的文件进行校验防止被恶意修改。

0x04 相关参考

https://zipperdown.org

最新文章

  1. OVS local network 连通性分析 - 每天5分钟玩转 OpenStack(132)
  2. pthread_join和pthread_detach的用法(转)
  3. 转载: android 学习架构
  4. Android--ViewPager的无限轮播
  5. win8.1环境下硬盘安装centos6.5双系统
  6. 看部电影,透透彻彻理解IoC(你没有理由再迷惑!)
  7. 【Linux常用工具】03. Linux性能测试工具ab
  8. Git教程(3)命令行使用git简单示例
  9. JAX-RS -- Java API for RESTful Web Services
  10. Qt编写端口扫描工具
  11. Bmob 之 列表查询
  12. 目标管理体系:OKR
  13. KiCad 一款强大的 BOM 和 装配图生成插件
  14. drawable自定义字体颜色
  15. MySQL开发——【联合查询、多表连接、子查询】
  16. oracle比较一行的最大值或最小值
  17. C/C++之全局、static对象/变量的初始化问题
  18. java正则表达式——Greedy、Reluctant和Possessive
  19. 【shell】sed命令
  20. PAT 1073 多选题常见计分法(20)(代码+思路)

热门文章

  1. VSCode常用插件之EditorConfig for vs code 使用
  2. Windows中配置MySQL环境变量
  3. 161.内置User模型的基本使用
  4. Centos7更改网卡名称Eth0
  5. 使用Opencv3.2出现l error C4996:fopen
  6. 查询linux版本信息
  7. WMITools修复wmi劫持--hao643.com/jtsh123劫持(修改快捷方式跳转至hao123.com)
  8. Unable to connect to a repository at URL
  9. 普通平衡树 lg3369
  10. 2 request的get和post方法