记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞

2022-07-04 22:23

★且听安全-点关注,不迷路!



CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞

★漏洞空间站-优质漏洞资源和小伙伴聚集地!


漏洞信息


开发 WinRAR 的 RarLab 公司研发的 unrar Linux 版本二进制文件中发现了一个路径穿越漏洞 CVE-2022-30333 ,可以实现任意文件写入。


漏洞分析


首先进行补丁对比。主要修改位于 `ulinks.cpp` 文件:


CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞


新增 `SafeCharToWide` 函数。但是最关键的地方不在这个函数,注意下面的修改:


CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞


函数 `IsRelativeSymlinkSafe` 输入参数发生了变化,当判断 rar 压缩包符号链接属于 Windows 样式,会将原始输入的参数 `hd->RedirName` 换成经过 `DosSlashToUnix` 函数转换后的参数 `TargetW` 。未修复版本处理逻辑如下:


CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞


`DosSlashToUnix` 函数会将 `` 替换成 `/` :


CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞


`IsRelativeSymlinkSafe` 函数会检查路径中是否包含路径穿越字符串:


CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞


查看 `IsPathDiv` 定义发现 Windows 检查 `..` 和 `..` ,Linux 只检查 `../`:


CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞


上面的处理逻辑看起来没有问题,但是 `IsRelativeSymlinkSafe` 函数的输入写成了原始的 `hd->RedirName` 而非检查处理过的 `Target` 。这样我们就可以在 Windows 系统上生成存在 `..` 路径穿越符号链接的 rar文件,绕过 `IsRelativeSymlinkSafe` 检查。按照漏洞触发原理和 unrar 解压流程构造 rar 文件,调试效果如下:


CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞


成功绕过检查,最终完成路径穿越并创建文件。


修复方式


前面已经说到,新版本函数 `IsRelativeSymlinkSafe` 输入参数发生了变化,当判断 rar 压缩包符号链接属于 Windows 样式,会将原始输入的参数换成了经过 `DosSlashToUnix` 函数转换后的参数 。这样构造的特殊 rar 文件过不了 `IsRelativeSymlinkSafe` 的检查。



由于传播、利用此文档提供的信息而造成任何直接或间接的后果及损害,均由使用本人负责,且听安全及文章作者不为此承担任何责任。



★且听安全-点关注,不迷路!

CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞



★漏洞空间站-优质漏洞资源和小伙伴聚集地!

CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞


知识来源: www.ctfiot.com/47266.html

阅读:743926 | 评论:0 | 标签:漏洞 CVE

想收藏或者和大家分享这篇好文章→复制链接地址

“CVE-2022-30333 UnRAR 一个有趣的解压缩路径穿越漏洞”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

黑帝公告 📢

十年经营持续更新精选优质黑客技术文章Hackdig,帮你成为掌握黑客技术的英雄

客黑业创的万千入年个一

❤用费0款退球星,年1期效有员会

🧠富财控掌,知认升提,长成起一💡

标签云 ☁