
TeamCity IntelliJ IDEA Plugin Credential Interception
Relatório de Prova-de-Conceito | Análise de Fluxo de Trabalho | Script do Servidor
Esta é uma reprodução da CVE-2020-35667 construindo um endpoint XML-RPC TeamCity falso.
A CVE-2020-35667 é uma vulnerabilidade SSRF no Plugin JetBrains TeamCity para IntelliJ IDE.
O plugin antigo do TeamCity IntelliJ solicita uma chave pública do servidor, criptografa a senha com ela e a envia de volta.
Como o servidor é controlado pelo atacante, o atacante descriptografa e registra as credenciais em texto simples.
A vulnerabilidade foi reportada por Jonathan Leitschuh (https://blog.jetbrains.com/blog/2021/02/03/jetbrains-security-bulletin-q4-2020/).
O impacto da exploração desta vulnerabilidade é a Intercepção de credenciais de usuário em texto simples durante o processo de login do plugin, via endpoint XML-RPC controlado pelo atacante.
Esta é a minha configuração para reproduzir o problema:
IntelliJ IDEA Community Edition 2018.1.8
TeamCity 2020.2.1 (build 85633)
Plugin TeamCity IntelliJ Vulnerável
TeamCity-IDEAplugin.zip;98aaaea4276f718c6c9cf3cb5383da1be6af9daa29e5b17fda8fa70d6bc1342fOS: Windows 10
Python version: 3.12.7
Os requisitos Python estão localizados em 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.Resultado esperado (vulnerável): As credenciais do usuário são registradas no console do servidor.
Comportamento esperado se seguro: O cliente valida a identidade do servidor e a autenticidade da chave, as credenciais não são expostas a um endpoint falsificado.