Android静态安全检测:Zip文件目录遍历攻击漏洞
发布时间
阅读量:
阅读量
Zip文件遍历概念解析
在ZIP格式的压缩文件中,文件命名规则允许包含"../"这一字符序列。攻击者可借助多个“../”路径符号,在解压过程中修改ZIP包内特定文件的存储路径,从而覆盖应用程序原本存在的文件。一旦被替换的文件为动态链接库so、dex或odex等关键组件,轻则可能导致本地拒绝服务问题,进而影响应用的正常运行;严重时甚至可能引发任意代码执行漏洞,对用户的设备安全及信息保密性构成威胁。
漏洞原理分析
在Linux系统环境下,../符号用于跳转至上一级目录。当Java程序执行Zip文件解压缩操作时,会调用ZipEntry类中的getName()方法以提取文件名称。若该文件名中包含../字符,该方法将直接将其作为返回结果。倘若未对返回值中的../字符进行有效过滤,并继续执行解压流程,则可能在系统其他目录中生成文件。
Github平台上的这一链接提供了若干示例Zip包https://github.com/snyk/zip-slip-vulnerability
借助以下代码即可生成具有攻击性的Zip文件
import java.io.*;
import java.util.ArrayList;
import java.util.List;
import java.util.zip.ZipEntry
全部评论 (0)
还没有任何评论哟~
