
TeamCity IntelliJ IDEA プラグインの資格情報傍受
概念実証レポート | ワークフロー解析 | サーバースクリプト
これは、偽の XML-RPC TeamCity エンドポイントを作成することによる CVE-2020-35667 の再現です。
CVE-2020-35667 は、IntelliJ IDE 用 JetBrains TeamCity プラグインにおける SSRF 脆弱性です。
旧版の TeamCity IntelliJ プラグインはサーバーから公開鍵を要求し、それでパスワードを暗号化して送り返します。
サーバーは攻撃者が制御するため、攻撃者は平文の資格情報を復号して記録します。
この脆弱性は Jonathan Leitschuh によって報告されました (https://blog.jetbrains.com/blog/2021/02/03/jetbrains-security-bulletin-q4-2020/)。
この脆弱性を悪用した場合の影響は、攻撃者が制御する XML-RPC エンドポイントを介した、プラグインのログインプロセス中の平文ユーザー資格情報の傍受です。
これは問題を再現するための私の環境です:
IntelliJ IDEA Community Edition 2018.1.8
TeamCity 2020.2.1 (build 85633)
脆弱な TeamCity IntelliJ プラグイン
TeamCity-IDEAplugin.zip;98aaaea4276f718c6c9cf3cb5383da1be6af9daa29e5b17fda8fa70d6bc1342fOS: Windows 10
Python バージョン: 3.12.7
Python の依存関係は cve2020-35667/requirements.txt にあります。
pip install -r requirements.txt
python poc_server.py
# Server listens on http://127.0.0.1:8888
http://127.0.0.1:8888。期待される結果(脆弱な場合): ユーザー資格情報がサーバーコンソールに記録されます。
安全な場合の期待される動作: クライアントがサーバーの身元と鍵の正当性を検証し、資格情報が偽装エンドポイントに公開されません。