
Golangで書かれたCVE-2021-22205 Gitlab RCE POC
CVE-2021-22205 Gitlab RCE POCの簡易版で、Golangで書かれており、影響を受けるのはGitlab CE/EE < 13.10.3、Gitlab CE/EE < 13.9.6、Gitlab CE/EE < 13.8.8です。
しばらく前からGolangを学びたいと思っていました。CVE-2021-22205のPOCをGolangで書くことで、言語に慣れることにしました。おそらくひどいコードだと思いますが、ご容赦ください。
使い方: go run CVE-2021-22205.go -t http://127.0.0.1:8080 -c "echo pizza > /tmp/pizza.txt"
tフラグは対象のGitlabインスタンスを、cフラグは実行したいコマンドを指定します。
スクリプトはプロキシとしてhttp://localhost:9090を使用するよう設定されています。プロキシを使いたくない場合は、その行を削除する必要があります。
脆弱なDocker環境はこちらにあります: https://github.com/vulhub/vulhub/tree/master/gitlab/CVE-2021-22205
CVE FinderのWriteup: https://devcraft.io/2021/05/04/exiftool-arbitrary-code-execution-cve-2021-22204.html