CVE-2021-22205原理及复现
CVE-2021-22205
RCE
onGitlab
version < 13.10.3
一、根本原因
- 当上传图片文件时,
Gitlab Workhorse
将扩展名为jpg|jpeg|tiff
的文件通过ExifTool
删除任何非白名单标记。 - 其中一个支持的格式是
DjVu
。当解析DjVu
注释时,标记被赋值为convert C escape sequences
。 - 作者的文章:
https://devcraft.io/2021/05/04/exiftool-arbitrary-code-execution-cve-2021-22204.html
(详情请看此处)
#convert C escape sequences 出现以下代码
$tok = eval qq{"$tok"};
二、漏洞复现
-
首先需要一个
Gitlab
平台的一个账户及密码(有些公司的Gitlab平台是允许注册的)
-
登录后到个人主页,找到
Snippets
-
此处需要上传
DjVu
格式图片(即Exp)-
DjVu
格式图片制作方式如下-
下载安装
DjVuLibre
地址http://djvu.sourceforge.net/
-
准备好将要压缩图片的文本
-
使用命令
djvumake rce.djvu INFO=0,0 BGjp=/dev/null ANTa=rce.txt && mv rce.djvu rce.jpg
生成Exp
-
-
-
上传
Exp
-
成功执行