ZipperDown漏洞修復

ZipperDown漏洞是由盤古實驗室發現的,該漏洞是盤古團隊針對不一樣客戶的iOS應用安全審計的過程當中發現的,大約有10%的iOS應用會受到此漏洞的影響。相似解壓等通用功能的漏洞,一個平臺爆出了漏洞,其餘平臺每每也受到牽連,不久前Android平臺上的unZip解壓文件漏洞,和這個漏洞幾乎是徹底同樣,只是平臺和第三方解壓庫不一樣而已。git

危害

利用此漏洞能夠作不少事情,例如實現目錄遍歷攻擊和App沙盒目錄中任意文件覆蓋風險,影響究竟有多大,取決於具體App。例如,若是集成了熱修復,且未作相應的安全處理,經過覆蓋熱修復的JS代碼,能夠在非越獄的手機上達到修改執行源碼的目的。github

原理

ZipperDown漏洞並不是iOS平臺自身問題,而是與Zip文件解壓有關。安全

  • iOS平臺沒有提供官方解壓類庫,因此開發中每每引用第三方庫來實現解壓功能;
  • 因爲現有的iOS App基本上採用SSZipArchive或Ziparchive來實現解壓,所以漏洞是來自使用第三方Zip庫解壓Zip文件的過程當中沒有對Zip內文件名作校驗致使的;
  • 例如 SSZipArchive解壓時會吧文件名直接拼接到目標路徑後面,若是文件名中含有「../」則能夠實現目錄的上一級跳轉,從而實現應用內任意目錄的跳轉,進一步能夠實現文件覆蓋;
  • 若是把App的熱修復hotpatch文件覆蓋替換了,能夠達到執行黑客指定指令,從而按照黑客的意圖實現任意應用內攻擊。

攻擊條件

  1. 使用了SSZipArchive或Ziparchive第三方解壓庫;
  2. Zip包在解壓時沒有作完整性校驗;
  3. 文件名中包含../等路徑特殊符號,解壓時沒有對文件名過濾處理;
  4. 使用了JSPatch或其餘熱修復庫,且本地腳本沒有加密等安全處理;
  5. 鏈接不可靠的WIFI熱點或者網絡被人劫持。

注:若App沒有使用熱修復功能,而且在沙盒文件中沒有保存重要的配置/信息,則可忽略此漏洞。網絡

修復

iOS端修復很簡單,下載文件成功後,解壓文件時,不用網絡傳輸過來的文件名稱,或者將文件名中的./等特殊符號所有都過濾替換掉就能夠了。jsp

Demo演示

  1. 假設咱們App使用了熱修復,熱修復文件放在沙盒的library/Caches/jspatch/hot.js(hot.js內容爲 jjjjjjjjjj);
  2. 咱們須要從這個連接(https://raw.githubusercontent.com/muzipiao/CommonResource/master/zip/hot.zip)下載一個包含圖片的ZIP文件,下載解壓的目標路徑爲library/Caches/zip/default;
  3. 黑客經過替換壓縮包,將壓縮包中內容替換爲假的hot.js(hot.js內容爲 hack hack hack),並將壓縮重命名爲**../jspatch**;
  4. 咱們下載解壓後發現,JS熱修復文件(library/Caches/jspatch/hot.js)內容變成了hack hack hack
  5. 若是使用的是Http,能夠經過charles代理抓包替換來達到模擬的目的,這裏咱們經過手動修改壓縮包名稱來模擬。

攻擊示意圖

代碼示例

//----------------------解壓縮示例------------------------
//網絡資源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/80359004spa

相關文章
相關標籤/搜索