漏洞描述:
Zipper Down
针对热更新应用,在使用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
}