
Intercettazione delle credenziali del plugin TeamCity per IntelliJ IDEA
Report di Proof-of-Concept | Analisi del flusso di lavoro | Script del server
Questa è una riproduzione di CVE-2020-35667 costruendo un falso endpoint XML-RPC di TeamCity.
CVE-2020-35667 è una vulnerabilità SSRF nel plugin JetBrains TeamCity per IntelliJ IDE.
Il vecchio plugin TeamCity per IntelliJ richiede una chiave pubblica al server, crittografa la password con essa e la rimanda indietro.
Poiché il server è controllato dall'attaccante, l'attaccante decifra e registra le credenziali in chiaro.
La vulnerabilità è stata segnalata da Jonathan Leitschuh (https://blog.jetbrains.com/blog/2021/02/03/jetbrains-security-bulletin-q4-2020/).
L'impatto dello sfruttamento di questa vulnerabilità è l'Intercettazione delle credenziali utente in chiaro durante il processo di login del plugin, tramite un endpoint XML-RPC controllato dall'attaccante.
Questa è la mia configurazione per riprodurre il problema:
IntelliJ IDEA Community Edition 2018.1.8
TeamCity 2020.2.1 (build 85633)
Plugin TeamCity IntelliJ vulnerabile
TeamCity-IDEAplugin.zip;98aaaea4276f718c6c9cf3cb5383da1be6af9daa29e5b17fda8fa70d6bc1342fSistema operativo: Windows 10
Versione Python: 3.12.7
I requisiti Python si trovano in 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.Risultato previsto (vulnerabile): Le credenziali utente vengono registrate nella console del server.
Comportamento previsto se sicuro: Il client convalida l'identità del server e l'autenticità della chiave, le credenziali non vengono esposte a un endpoint contraffatto.