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