CVE-2021-22204 – ExifTool RCE详细分析

nn1183 漏洞分析 24862

最近在Hackerone上察看一个我最喜欢的漏洞赏金项目时,我发现他们正在使用ExifTool对上传的图片进行过滤。我曾多次使用ExifTool,但从未深入探究其原理,甚至不知道它是用什么语言编写的。在这个赏金项目里,他们使用了旧版本的ExifTool(11.70),虽然解析文件格式很难,但我想也许存在一些现有的CVE可以拿来使用。

在快速搜索后,我只找到一个2018年的旧CVE,因此我决定还是审计它的源代码。ExifTool是使用Perl写的,我之前从未审计过Perl,但它作为一种动态脚本语言,大部分的通用概念我都很熟悉。

我一开始想要寻找那些执行文件访问的地方,但并未获得成果,接着我开始搜索eval,发现它被大量使用:

在Perl中,eval有两种使用方式,eval BLOCKeval EXPR,这就是它被大量使用的原因。忽略所有的eval BLOCK后,我从剩下的结果中发现了一些有趣的东西,其中一个位于DjVu模块的ParseAnt方法中,我不知道DjVu文件是什么,但ParseAnt方法的注释写得非常详细。

回复

我来回复
  • 暂无回复内容

扫码关注
扫码关注
分享本页
返回顶部