1. 程式人生 > 其它 >CVE-2021-22205原理及復現

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平臺是允許註冊的)

  2. 登入後到個人主頁,找到Snippets

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