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