漏洞描述:
ZipperDown针对热更新应用,在使用ZipArchive或SSZipArchive(第三方库)解压zip文件时,未对…以及/进行过滤处理导致目录穿透,解压时恶意文件覆盖原有可执行文件或其他文件,在应用程序运行时造成恶意代码执行或运行崩溃等危害。
第三方解压库 (ZipArchive/SSZipArchive)对Zip文件解压过程中会存在被攻击的漏洞,需要对Zip内部文件名进行”./”过滤。
func safeCheckZipPath(path: String) -> String {
var resultPath = path
if resultPath.contains("..") {
// 对非法路径做替换处理
resultPath = resultPath.replacingOccurrences(of: "..", with: "")
}
return resultPath
}