CVE-2021-22205
RCEonGitlabversion < 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
-
成功執行

