
TeamCity IntelliJ IDEA Plugin – Abfangen von Anmeldedaten
Proof-of-Concept-Bericht | Workflow-Analyse | Server-Skript
Dies ist eine Reproduktion von CVE-2020-35667 durch Erstellen eines gefälschten XML-RPC-TeamCity-Endpunkts.
CVE-2020-35667 ist eine SSRF-Schwachstelle im JetBrains-TeamCity-Plugin für die IntelliJ-IDE.
Das alte TeamCity-IntelliJ-Plugin fordert einen öffentlichen Schlüssel vom Server an, verschlüsselt das Passwort damit und sendet es zurück.
Da der Server vom Angreifer kontrolliert wird, entschlüsselt der Angreifer die Klartext-Anmeldedaten und protokolliert sie.
Die Schwachstelle wurde von Jonathan Leitschuh gemeldet (https://blog.jetbrains.com/blog/2021/02/03/jetbrains-security-bulletin-q4-2020/).
Die Auswirkung der Ausnutzung dieser Schwachstelle ist das Abfangen von Klartext-Benutzeranmeldedaten während des Plugin-Anmeldeprozesses über einen vom Angreifer kontrollierten XML-RPC-Endpunkt.
Dies ist meine Umgebung zur Reproduktion des Problems:
IntelliJ IDEA Community Edition 2018.1.8
TeamCity 2020.2.1 (build 85633)
Verwundbares TeamCity-IntelliJ-Plugin
TeamCity-IDEAplugin.zip;98aaaea4276f718c6c9cf3cb5383da1be6af9daa29e5b17fda8fa70d6bc1342fBetriebssystem: Windows 10
Python-Version: 3.12.7
Die Python-Abhängigkeiten befinden sich 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.Erwartetes Ergebnis (verwundbar): Benutzeranmeldedaten werden in der Serverkonsole protokolliert.
Erwartetes Verhalten im sicheren Fall: Der Client validiert die Serveridentität und die Authentizität des Schlüssels; die Anmeldedaten werden keinem vorgetäuschten Endpunkt ausgesetzt.