CVE-2021-22205原理及复现

CVE-2021-22205

RCE on Gitlab 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"};

二、漏洞复现

  1. 首先需要一个Gitlab平台的一个账户及密码(有些公司的Gitlab平台是允许注册的)
    register

  2. 登录后到个人主页,找到Snippets

    1

  3. 此处需要上传DjVu格式图片(即Exp)

    • DjVu格式图片制作方式如下

      1. 下载安装DjVuLibre 地址http://djvu.sourceforge.net/

      2. 准备好将要压缩图片的文本

      3. 使用命令djvumake rce.djvu INFO=0,0 BGjp=/dev/null ANTa=rce.txt && mv rce.djvu rce.jpg 生成Exp

  4. 上传Exp

  5. 成功执行

posted @ 2021-06-22 15:59  Ybitsec  阅读(5830)  评论(0编辑  收藏  举报