
TeamCity IntelliJ IDEA Plugin Credential Interception
Отчет PoC | Анализ рабочего процесса | Серверный скрипт
Это воспроизведение CVE-2020-35667 путем создания поддельной XML-RPC точки TeamCity.
CVE-2020-35667 — это SSRF-уязвимость в плагине JetBrains TeamCity для IntelliJ IDE.
Старый плагин TeamCity IntelliJ запрашивает открытый ключ с сервера, шифрует им пароль и отправляет его обратно.
Поскольку сервер контролируется атакующим, злоумышленник расшифровывает и логирует учетные данные в открытом виде.
Уязвимость была сообщена Джонатаном Лейтшухом (https://blog.jetbrains.com/blog/2021/02/03/jetbrains-security-bulletin-q4-2020/).
Воздействие эксплуатации этой уязвимости — Перехват учетных данных пользователя в открытом виде в процессе входа в плагин через контролируемую атакующим XML-RPC точку.
Это моя настройка для воспроизведения проблемы:
IntelliJ IDEA Community Edition 2018.1.8
TeamCity 2020.2.1 (сборка 85633)
Уязвимый плагин TeamCity IntelliJ
TeamCity-IDEAplugin.zip;98aaaea4276f718c6c9cf3cb5383da1be6af9daa29e5b17fda8fa70d6bc1342fОС: Windows 10
Версия Python: 3.12.7
Требования Python находятся в 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.Ожидаемый результат (уязвимый): Учетные данные пользователя логируются на серверной консоли.
Ожидаемое поведение, если защищено: Клиент проверяет идентификацию сервера и подлинность ключа, учетные данные не раскрываются поддельному endpoint.