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
-
成功執行