springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

admin 2023年5月29日08:52:35评论37 views字数 1872阅读6分14秒阅读模式

0x01 前言

记录本次已授权目标(所有漏洞均已修复),本来只是一个平平无奇的spring未授权,发现存在heapdump接口,通过查看env后搜索相关敏感关键词,比如shiro,oss等

shiro的话说明目标服务启用了shiro,但是具体在哪里需要自己找,此时的heapdump里很有可能泄露shiro密钥,获取shiro密钥后就是rce了 oss和储存桶等云服务挂钩,有些会直接在actuator根节点下,有些则是靠内存泄漏进行分析获取泄露的oss的aksk 其中还存在nacos,可以通过翻找配置文件等,可能会泄露大量隐私数据。

0x02 正文

首先是插件扫描到路径https://xxx.xxx.xxx.xx/actuator,可直接未授权访问spring接口,例如env、heapdump等

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】这里存在多个端点,去/env 中访问发现其利用了 shiro 框架

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

直接访问https://xxx.xxx.xxx.xx/actuator/heapdump下载文件,然后进行内存信息分析可以得到大量隐私信息

这里可以使用java自带的jvm进行分析,也可以使用辅助工具,推荐一个自动化分析的工具JDumpSpider,但是还是需要个人走一下内存分析的流程会好一些

0x03 jvm简单分析

下载下来,然后用java工具装载,进行过滤

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

然后在实例中查看decryptionCipherKey

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

得到数组:124, 42, -66, -1, 21, -128, 113, 120, 76, 76, 32, -2, 114, 98, 119, 105

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

这时候借鉴了一下网上的思路,这里是base64转byte

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

所以反过来,byte转base64即可,
得到密钥:fCq+/xWAcXhMTCD+cmJ3aQ==
然后使用利用工具进行判断

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

因为使用了AES加密,所以要勾选AES加密,不然会出错,然后直接进行利用链利用

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

至此验证漏洞存在即可

0x04 分析工具JDumpSpider

使用:

java -jar JDumpSpider-1.0-SNAPSHOT-full.jar heapdump
ps:内容过多,这里仅截图一张了

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

为了方便查看复制到文档打开

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

拿到后梳理一下可能获取到的信息,例如:
Redis地址、数据库地址及账号密码、nacos地址、minio地址及账号密码、ak/sk、shiro密钥等等。
这里获取到一些mysql数据库、nacos地址、ak/sk
nacos地址:
https://xxx.xxx.xxx.xx:8848

当然数据库这些信息比较敏感,操作也比较简单,获取ak/sk的一些点和利用方式具体可以参考公众号以前的文章,笔者在这里也不做赘述了

我们先来打nacos
这里需要注意的就是nacos默认端口一般都是8848(特殊情况除外),端口提示是404,需要拼接路径/nacos访问才行
未授权创建用户

构建payload

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】这里值得注意的是,有些时候会存在版本差异,需要删除ua发包或者修改ua为
User-Agent:Nacos-Server
发包
pyload:
/nacos/v1/auth/users?accesstoken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3NTQxMDg2OH0.ZVcH2lwvBYHQvt232ruk2jqO08Eag3LLpZSz899j0D0&username=test&password=test111

创建成功,正常登录账号

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

权限绕过

登录框任意输入,抓包拦截返回包,构建pyload,修改状态码

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

pyload:

{"accessToken":"eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3NTQxMDg2OH0.ZVcH2lwvBYHQvt232ruk2jqO08Eag3LLpZSz899j0D0","tokenTtl":18000,"globalAdmin":true,"username":"nacos"}
这里的jwt作用不大,只是为了校验用户名而已,任意构造一个jwt都可以进行绕过,重要的是返回包的globalAdmin为true

放包后即可进入后台

springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

这里案例nacos并没有public,所以也没有配置文件可翻,我们也就点到为止了,springboot未授权引发的漏洞存在很多,当然上述也只是一小部分组合拳利用,如果有更好的思路和利用方式的师傅欢迎私信一起交流~

原文始发于微信公众号(Poker安全):springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2023年5月29日08:52:35
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   springboot未授权到多个高危挖掘过程【文末附赠edu邀请码】http://cn-sec.com/archives/1766218.html

发表评论

匿名网友 填写信息