前言 #
嗨我貝坦 嘿對這篇也被我拖很久 不客氣
總之這是一個發生在 WinRAR 相關的 CVE 漏洞,
並且本次後續會去實際透過 IDA 以及 x64dbg ,
來去針對 WinRAR 進行動靜態逆向分析,查看實際解壓過程,
並自創了一種自稱艾克動態分析法的手法(超破)
太久沒寫也不知道要怎麼接下去 總之開始吧
然後本篇我也有在 2026 SITCON 壓縮議程上進行發表,也還迎各位前去查看。
概念 #
Zip Slip 介紹 #
目錄走訪、路徑遍歷總之有很多種稱呼,總之簡單來講呢,就是解壓不該解壓的地方,
就例如我們在解壓時可以選擇解壓到當前目錄,但實際解壓時呢,卻因為該壓縮檔被精心構造了,
從而導致解壓到上一層,又或是特定目錄的手法。
相信各位在打 CTF 也一定打過路徑穿越之類的 Web 題目,
而 Zip Slip 的概念就與這個差不多,
指不過 ..\ 從網址變到檔名或是解壓縮路徑了。
CVE 介紹 #
本次主要的兩個 CVE 分別為 CVE-2025-6218、CVE-2025-8088,
而這兩者的不同主要在於藏點點斜的位置不一樣,以下分別介紹。
-
CVE-2025-6218
發生於 WinRAR 7.12 版本以前,漏洞成因在於過去的安全修正會將解壓縮路徑中的空格刪除, 從而就可以透過建構例如\.. \之類的路徑,來讓他在移除空格後變為點點斜的惡意穿越路徑。
而這個漏洞後面會透過動靜態分析來詳細說明這部分。 -
CVE-2025-8088
發生於 WinRAR 7.13 版本以前,漏洞成因在於攻擊者可以透過修改儲存於備用資料流 (ADS)中檔案的路徑改為惡意路徑,從而達到路徑穿越之目的。
被 APT Group - RomCom 惡意利用,價值八萬美元的漏洞 😭😭😭😭😭
備用資料流 (ADS) #
備用資料流ADS(Alternate Data Streams),是存在於NTFS 檔案系統的一個特性,
可以將內容附加在檔案上面,而這些內容不影響檔案主內容及大小。
這聽起來仍十分抽象,這邊我們直接來實際做看看:
首先是先去建立一個正常檔案 normal.txt,然後我們透過指令查看該檔案大小為 8 bits
接著我們再透過指令把文字內容寫入到 normal.txt ADS 中的 hidden.txt
而後我們一樣透過 dir 去進行查看,可以看到說檔案大小完全沒有變動
但是我們卻可以透過 more 來去查看該 ADS 中的內容,而直接查看 normal.txt 的話,
其內容也都是完全正常的
而若是想查看 ADS 中的資料的話,則需透過 dir /R 才會列出該資料夾的所有內容包含 ADS。
有關 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 #
動態分析 #
- 分析為什麼單純的
\..\會失效 - 為什麼都會噴出兩個檔案
- 7.11、7.12、7.13分別對於特殊字元的處理方式