破解winrar加密文件步骤 winrar破解方法

概述国外安全人员Nadav Grossman 爆知名压缩软件WinRAR 存在安全漏洞 , 隐藏在软件的一个逻辑判断有问题 , 通过该漏洞可以实现代码执行 。相关代码CVE编码为:CVE-2018-20250, CVE-2018-20251, CVE-2018-20252和CVE-2018-20253 , 
国家信息安全漏洞共享平台(CNVD)也已经收录该系列漏洞(CNVD-2019-04911、CNVD-2019-04912、CNVD-2019-04913和CNVD-2019-04910 , 分别对应CVE-2018-20250、CVE-2018-20251、CVE-2018-20252和CVE-2018-20253) , 并发出安全公告 , 公告称 , 攻击者利用上述漏洞 , 可在未授权的情况下实现任意代码执行 。目前 , 漏洞利用原理已公开 , 厂商已发布新版本修复此漏洞 。
该漏洞不仅影响WinRAR也影响Bandizip , 360压缩 , 2345好压等多款压缩软件 , 请使用这些软件的及时更新 。建议使用免费开源软件7zip , 7zip不受该漏洞影响 。
漏洞原理
WinRAR 是window系统下最常用的压缩包管理器 , 基于Windows图形界面 , 可进行备份数据、文件压缩和解压 , 支持RAR/ZIP等格式的文件 , 在windows用户中使用广泛 , 是装机必备软件之一 。WinRAR是一个款商用收费软件 , 大多数用户使用的汉化或者破解版本 , 存在很大的安全隐患 , 不建议用户使用 。
【破解winrar加密文件步骤 winrar破解方法】该次系列漏洞源于WinRAR依赖的旧动态链接库UNACEV2.dll , 该库自从2006年已经有13年未曾更新过 。该库主要用来处理ACE格式的压缩文件 , 在解压ACE文件时 , 处理代码中 , 代码逻辑判断出现问题 , 可以导致任意目录访问的穿越漏洞,可以利用漏洞进行文件写入 , 甚至增加开机项等高特权操作 。涉及漏洞的逻辑代码演示版本如下:

破解winrar加密文件步骤 winrar破解方法

文章插图
该功能主要做以下检查:
第一个字符为””或”/”;文件名不以以下字符串”..”或”../”开头 , 的”路径遍历”父目录;屏蔽以一下开头的 “路径遍历”字串: “..”、”../”、”/../”、”/..” 。
unacv2.dll中的提取函数调用WinRAR中的StateCallbackProc , 并将ACE格式的文件名字段作为参数传递给它 。WinRAR回调的验证器检查相对路径 , 验证器将
ACE_CALLBACK_RETURN_CANCEL返回到dll , (因为文件名字段以反斜杠””开头)并且文件创建被中止 。将以下字符串传递给WinRAR回调的验证器:”sourbeRED VERSION_?”该名字会的下划线会被unacv2.dll替换为* 。
由于dll中存在错误(”unacev2.dll”) , 回调中返回
ACE_CALLBACK_RETURN_CANCEL , 会由dll创建相对路径(ACE归档中的文件名字段)中指定的文件夹 。由于unacev2.dll在创建文件夹之前调用验证器 , 在创建文件夹之后它会过早地检查回调的返回值 。因此 , 在调用WriteFile API之前 , 它会在将内容写入提取的文件之前中止提取操作 。它实际上创建了提取的文件 , 但是没有向其写入内容 。它调用CreateFile API , 然后检查回调函数的返回码 。如果返回代码是ACE_CALLBACK_RETURN_CANCEL , 它实际上会删除先前通过调用CreateFile API创建的文件 。
由于该漏洞允许我们只创建空文件 。可以通过在文件的末尾添加”:”来绕过文件删除 , 该文件会被视为备用数据流 。作为回调返回

推荐阅读