CVE-2021-22205原理及復現
阿新 • • 發佈:2021-06-22
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
-
成功執行