漏洞挖掘 | 通过API接口拿到CNVD证书

文章描述了一次渗透测试中发现的Springboot系统中的API信息泄露漏洞,攻击者可通过SwaggerUI获取API和敏感文件。作者验证了漏洞的通用性,满足CNVD的高危漏洞标准,并成功提交报告。
摘要由CSDN通过智能技术生成

漏洞概述

某公司平台系统存在敏感信息泄露漏洞,由于对swagger-ui未做好访问控制措施,导致攻击者可以通过swagger页面获取网站API信息,进而导致攻击者构造payload对系统API进行攻击。

背景

在某次常规渗透测试项目中,有一个IP地址需要测试,访问过去发现是一个XX后台管理系统,根据登录页面的信息判断,是某公司开发的XX管理系统。于是对该系统进行测试,可惜没发现什么可利用的漏洞,于是改变思路,对这个IP进行信息收集。

首先收集端口开放信息,发现其开放了非常多的端口,挨个访问过去,发现每个端口基本都开放了web服务,这是个好消息呀,想着可以通过其它端口获取权限,进而回来渗透目标系统。

当访问到8083端口时,发现是个空白页面,但标题却显示某某平台登录。ctrl+U查看网页源代码,发现许多js文件,其中这一条吸引了我。

这又是api又是env,很难不让人联想到api信息泄露,于是对网站进行目录扫描,存在swagger-ui,看来是springboot集成了swagger-ui,并且没有设置身份验证措施。

于是对这些接口一一进行测试,发现了许多高危问题,例如敏感信息泄露,任意文件上传等。但可惜没有拿到权限,任意文件上传后只能查看,并不能解析,这次项目也就这样草草结束了。

突发奇想

项目结束后的某一天,在回看之前的文档时,又看到了这个系统,突然发现js文件里面写明了网站指纹信息,这个author前面的网址会不会就是开发者的网站呢?

访问过去看看,果然!是一个专门做某系统的公司,那就说明这个系统一定还有很多其它企业在用。

于是去fofa搜一下特征:body="xxx.com",有223条资产信息。

随便点开一个,复现之前的漏洞,首先访问swagger-ui,在这里有一个/xx/xx/xx/all的功能,它提供获取所有文件的功能。

访问这个API,发现泄露了文件系统内所有文件的信息,通过分析json内容,发现里面存储了所有上传的用户身份信息。

这里我们已经获取到所有文件的id级名称等信息,但是没有办法查看内容,于是回到swagger里面继续寻找。。。

发现一处“根据id获取文件信息”的接口,于是调用这个接口。

从刚才泄露的所有文件信息中选择一个id,拼接到这个接口后面,替换掉{fileId}并访问。

可以看到获取了该文件的详细信息,包括文件存储的物理路径、创建时间、文件大小等内容,但这还不能证明泄露的是敏感信息,需要真正看到图片内容才行,于是继续返回寻找可用的API接口。

上面这个api接口,可以直接获取文件缩略图,拼接id后访问,OK了获取到了用户敏感信息(这里就不放图了)。

通用型漏洞证明

现在漏洞有了,接下来就是证明它是否为通用型漏洞,CNVD的通用型漏洞要求如下:中危及中危以上的通用性漏洞(CVSS2.0基准评分超过4.0) 软件开发商注册资金大于等于5000万人民币或者涉及党政机关、重要行业单位、科研院所、重要企事业单位(如:中央国有大型企业、部委直属事业单位等)的高危事件型漏洞 通用型漏洞得十个网络案例以上。

首先看一看软件开发商注册资金是否大于5000万,很幸运我找到的这个整好比5000万多一些。接着是需要10个案例,那么就掏出fofa,再找出10个案例就好。刚才查询时有200多个网站存在相同特征,每个都试一下发现基本全都存在这个漏洞,完美~。

写好报告后直接提交至CNVD平台,等着下证书就OK了:)

  • 16
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值