ZipperDown漏洞是由盘古实验室发现的,该漏洞是盘古团队针对不一样客户的iOS应用安全审计的过程当中发现的,大约有10%的iOS应用会受到此漏洞的影响。相似解压等通用功能的漏洞,一个平台爆出了漏洞,其余平台每每也受到牵连,不久前Android平台上的unZip解压文件漏洞,和这个漏洞几乎是彻底同样,只是平台和第三方解压库不一样而已。git
利用此漏洞能够作不少事情,例如实现目录遍历攻击和App沙盒目录中任意文件覆盖风险,影响究竟有多大,取决于具体App。例如,若是集成了热修复,且未作相应的安全处理,经过覆盖热修复的JS代码,能够在非越狱的手机上达到修改执行源码的目的。github
ZipperDown漏洞并不是iOS平台自身问题,而是与Zip文件解压有关。安全
注:若App没有使用热修复功能,而且在沙盒文件中没有保存重要的配置/信息,则可忽略此漏洞。网络
iOS端修复很简单,下载文件成功后,解压文件时,不用网络传输过来的文件名称,或者将文件名中的./
等特殊符号所有都过滤替换掉就能够了。jsp
https://raw.githubusercontent.com/muzipiao/CommonResource/master/zip/hot.zip
)下载一个包含图片的ZIP文件,下载解压的目标路径为library/Caches/zip/default;//----------------------解压缩示例------------------------
//网络资源zip地址
NSString *zipFileURLPath = [filePath path];
//library/Caches/没有zip文件夹则建立zip文件夹
NSString *cachePath = [NSSearchPathForDirectoriesInDomains(NSCachesDirectory, NSUserDomainMask, YES) lastObject];
NSString *zipPath = [cachePath stringByAppendingPathComponent:@"zip"];
//咱们直接存到文件夹下,若fileName含有../字符串,经过拼接组合则能够打开任意目录文件
NSString *desPath = [NSString stringWithFormat:@"%@/%@",zipPath,fileName];
//解压新的压缩文件,可能会覆盖掉原有文件
BOOL isSuccess = [SSZipArchive unzipFileAtPath:zipFileURLPath toDestination:desPath];
// 压缩
if (isSuccess) {
NSLog(@"解压缩成功");
}else{
NSLog(@"解压缩失败");
}
复制代码
若是您以为有所帮助,请在ZipperDownDemo上赏个Star ⭐️,您的鼓励是我前进的动力加密
参考:https://blog.csdn.net/yidunmarket/article/details/80359004
spa