WinRAR代码执行漏洞CVE-2018-20250

0x01 分析思路

  • 利用https://github.com/googleprojectzero/winafl 漏洞分析框架模糊测试WinRAR。
  • 几个存档格式的崩溃,例如RAR,LZH和ACE,这些存档格式会导致内存损坏,例如Out-of-Bounds Write
  • 发现WinRAR使用名为unacev2.dll的DLL来解析ACE归档文件。快速浏览一下这个dll就会发现它是2006年没有保护机制的旧版dll
  • 了解ACE格式

0x02 漏洞细节

漏洞允许提取文件到任意路径并完全忽略目的文件夹,并将提取的文件相对路径作为完全路径。

导致路径遍历漏洞有两个限制:

1. 第一个字符是‘/’、 ‘’;

2. ‘*’ 至少应该包含在文件名中一次。位置没有关系。

WinRAR部分存在路径遍历漏洞:

从WinRAR回调函数(ACE_CALLBACK_RETURN_CANCEL)获取中止代码(abort code)后,unacev2.dll并不中止操作。因为对WinRAR回调的返回代码的延迟检查,创建了漏洞利用文件中指定的目录。

提取的文件也会创建在漏洞利用文件指定的完全路径。

0x03 利用方式

https://github.com/WyAtu/CVE-2018-20250

0x04 效果

桌面上解压或者是右键解压就会复现效果

0x05 相关样本IOC

ModifiedVersion3.rar

6c702c25ec425764a303418b2d3f99ae

0x06 参考

https://blog.csdn.net/liqiuman180688/article/details/88052788

https://blog.csdn.net/chen_yi_ang/article/details/88395823

https://research.checkpoint.com/extracting-code-execution-from-winrar/

成功获取WinRAR 19年历史代码执行漏洞

https://www.anquanke.com/post/id/171403

原文地址:https://www.cnblogs.com/17bdw/p/10416145.html