地址:
參考: 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

