快轉到主要內容

Zip Slip! 我的拉鍊滑掉ㄌ

·
五月才剛看完 LNK file 的結構 現在又在看 ZIP file 的結構

前言
#

嗨我貝坦 嘿對這篇也被我拖很久 不客氣
總之這是一個發生在 WinRAR 相關的 CVE 漏洞,
並且本次後續會去實際透過 IDA 以及 x64dbg ,
來去針對 WinRAR 進行動靜態逆向分析,查看實際解壓過程,
並自創了一種自稱艾克動態分析法的手法(超破)
太久沒寫也不知道要怎麼接下去 總之開始吧

然後本篇我也有在 2026 SITCON 壓縮議程上進行發表,也還迎各位前去查看。

概念
#

Zip Slip 介紹
#

目錄走訪、路徑遍歷總之有很多種稱呼,總之簡單來講呢,就是解壓不該解壓的地方,
就例如我們在解壓時可以選擇解壓到當前目錄,但實際解壓時呢,卻因為該壓縮檔被精心構造了,
從而導致解壓到上一層,又或是特定目錄的手法。

alt text

相信各位在打 CTF 也一定打過路徑穿越之類的 Web 題目,
而 Zip Slip 的概念就與這個差不多,
指不過 ..\ 從網址變到檔名或是解壓縮路徑了。

CVE 介紹
#

本次主要的兩個 CVE 分別為 CVE-2025-6218CVE-2025-8088
而這兩者的不同主要在於藏點點斜的位置不一樣,以下分別介紹。

  • CVE-2025-6218
    發生於 WinRAR 7.12 版本以前,漏洞成因在於過去的安全修正會將解壓縮路徑中的空格刪除, 從而就可以透過建構例如 \.. \ 之類的路徑,來讓他在移除空格後變為點點斜的惡意穿越路徑。
    而這個漏洞後面會透過動靜態分析來詳細說明這部分。

  • CVE-2025-8088
    發生於 WinRAR 7.13 版本以前,漏洞成因在於攻擊者可以透過修改儲存於 備用資料流 (ADS) 中檔案的路徑改為惡意路徑,從而達到路徑穿越之目的。
    被 APT Group - RomCom 惡意利用,價值八萬美元的漏洞 😭😭😭😭😭

    alt text

備用資料流 (ADS)
#

備用資料流ADS(Alternate Data Streams),是存在於NTFS 檔案系統的一個特性,
可以將內容附加在檔案上面,而這些內容不影響檔案主內容及大小。

這聽起來仍十分抽象,這邊我們直接來實際做看看:
首先是先去建立一個正常檔案 normal.txt,然後我們透過指令查看該檔案大小為 8 bits

alt text

接著我們再透過指令把文字內容寫入到 normal.txt ADS 中的 hidden.txt
而後我們一樣透過 dir 去進行查看,可以看到說檔案大小完全沒有變動

alt text

但是我們卻可以透過 more 來去查看該 ADS 中的內容,而直接查看 normal.txt 的話,
其內容也都是完全正常的

alt text

而若是想查看 ADS 中的資料的話,則需透過 dir /R 才會列出該資料夾的所有內容包含 ADS。

alt text

有關 ADS 的部分就簡單介紹到這裡,簡而言之這就是一個可以去任意寫入檔名、內容,並且根本沒有什麼人知道的 Windows 原生檔案特性。
而其餘更多更詳細的介紹可以去看 這篇 suv789 blog 的內容。

所以你的意思是,Windows 中存在一個可以任意寫入東西,並且不會被正常看到的一個特性
襪這聽起來也太安全了吧 一看就是個拿來方便進行惡意行為的工具
感覺這東西可能存在很多漏洞,之後可能會再來去發一篇專門研究這個看看

復現
#

CVE-2025-6218 PoC
#

"c:\Program Files\WinRAR\WinRAR.exe" a -ap" \.. \" CVE-2025-6218.zip 目標文件.txt

CVE-2025-8088 PoC
#

手搓 zip file
#

逆向 winRAR
#

動態分析
#

  1. 分析為什麼單純的\..\會失效
  2. 為什麼都會噴出兩個檔案
  3. 7.11、7.12、7.13分別對於特殊字元的處理方式

總結
#

參考資料
#