Android静态安全检测 -> Zip文件目录遍历漏洞
来源:互联网 发布:淘宝装修设计师模块 编辑:程序博客网 时间:2024/06/04 18:09
Zip文件目录遍历漏洞 - ZipEntry.getName方法
一、API
1. 继承关系
【1】java.lang.Object
【2】java.util.zip.ZipEntry
2. 主要方法
【1】getName() 返回String(entry的名字)
【2】isDirectory() 返回Boolean(是否为directory entry)
【3】参考链接(Android developers)
https://developer.android.com/reference/java/util/zip/ZipEntry.html
3. 使用ZipEntry类解压zip文件
【1】代码示例
【2】参考链接
http://blog.csdn.net/jiangwei0910410003/article/details/52118575
二、触发条件
1. 定位getName方法
【1】对应到smali语句中的特征
Ljava/util/zip/ZipEntry;->getName()Ljava/lang/String;
2. 方法内查询getNextEntry()
Ljava/util/zip/ZipInputStream;->getNextEntry()Ljava/util/zip/ZipEntry;
参考链接:https://developer.android.com/reference/java/util/zip/ZipInputStream.html#getNextEntry()
3. 判断是否过滤特殊字符 "../"
4. 漏洞代码示例
三、漏洞原理
【1】使用ZipEntry.getName()解压zip文件,没有对上级目录字符串(../)进行过滤校验,可能会导致被解压的文件发生目录跳转,解压到其他目录,并且覆盖相应的文件,最终导致任意代码执行
【2】更多内容
https://jaq.alibaba.com/community/art/show?articleid=383
http://www.droidsec.cn/android安全开发之zip文件目录遍历/
http://wolfeye.baidu.com/blog/traversal-zip-file/
四、修复建议
【1】解压zip文件时,判断文件名是否有../特殊字符
【2】对重要的Zip压缩包文件进行数字签名校验,校验通过才进行解压
- Android静态安全检测 -> Zip文件目录遍历漏洞
- Android静态安全检测 -> Content Provider文件目录遍历漏洞
- Android安全开发之ZIP文件目录遍历
- Android安全开发之ZIP文件目录遍历
- PHP ZipArchive::extractTo()函数.zip文件目录遍历漏洞
- Android静态安全检测 -> WebView系统隐藏接口漏洞检测
- Android静态安全检测 -> Intent Scheme URL 漏洞
- Android静态安全检测 -> HTTPS敏感数据劫持漏洞
- Android静态安全检测 -> Fragment注入攻击漏洞
- Android静态安全检测 -> 内网测试信息残留漏洞
- Android静态安全检测 -> 强制类型转换本地拒绝服务漏洞
- Android静态安全检测 -> 文件任意读写
- Android静态安全检测 -> WebView组件远程代码执行漏洞检测
- Android静态安全检测 -> WebView File域同源策略绕过漏洞
- Android静态安全检测 -> Content Provider组件本地SQL注入漏洞
- Android静态安全检测 -> 资源文件泄露风险
- Android静态安全检测 -> 代码混淆检测
- Android静态安全检测 -> 系统Root检测
- 安装好 .NET 4 后还是找不到设定网站站台的 ASP.NET 页签的 ASP.NET 4.0 的选项
- 单例模式汇总篇续
- Jmeter:正则表达式提取器上一个http请求报文内容作为下一个请求的参数
- Ural1521-War Games 2
- 图像的卷积 以及opencv基本操作
- Android静态安全检测 -> Zip文件目录遍历漏洞
- tomcat 集群
- Struts2 JSP的标准动作<jsp:forward>无法访问Action
- 【转】取模(mod)与取余(rem)的区别——Matlab学习笔记
- sqlyog注册码激活
- 文件和文件夹的操作
- 汇编速查-FPU
- Shell面试题及企业运维实战练习1
- Python处理JSON