地址:
參考: https://research.checkpoint.com/extracting-code-execution-from-winrar/
POC: https://github.com/Ridter/acefile
EXP: https://github.com/WyAtu/CVE-2018-20250
漏洞成因:
使用unacev2.dll動態共享庫
漏洞編號:
CVE-2018-20250: ACE文件驗證邏輯繞過漏洞
CVE-2018-20251: ACE文件名邏輯驗證繞過漏洞
CVE-2018-20252: ACE/RAR文件越界寫入漏洞
CVE-2018-20253: LHA/LZH文件越界寫入漏洞
修復方式:
1. 刪除安裝文件夾內的unacev2.dll文件
2. 升級成winrar5.70 Beata 1以上版本(https://www.win-rar.com/download.html)
漏洞復現:
-
新建cmd.exe
-
將cmd.exe 壓縮為 test.ace
-
獲取壓縮包的 crc (https://github.com/Ridter/acefile)
注意這三個值(hdr_crc,hdr_size,filename)
38的十六進制為:
- 通過十六進制編輯器修改test.ace文件
注意以上 信息
獲取開機啟動菜單(win+r 輸入 shell:startup)
復制地址,進行修改
保存,重新使用acefile檢測crc
由圖知,正確的CRC值為9c4f,當前為0x2aca,進行修改,還有之前hdr_size的值同時修改
該字段長度為110,十六進制為6E
查找2a(2a ca 是連續字段,這里的順序是相反的)
修改為4f9c
使用acefile腳本檢測文件是否正確(通過檢測,我發現值變了,重新修改crc,就正確了)
5.保存退出
將test.ace重命名為test.rar格式文件
右鍵解壓
打開啟動菜單發現新建cmd.exe成功
6.查看開機啟動項 msconfig