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等
这里存在多个端点,去/env 中访问发现其利用了 shiro 框架
直接访问https://xxx.xxx.xxx.xx/actuator/heapdump下载文件,然后进行内存信息分析可以得到大量隐私信息
这里可以使用java自带的jvm进行分析,也可以使用辅助工具,推荐一个自动化分析的工具JDumpSpider,但是还是需要个人走一下内存分析的流程会好一些
0x03 jvm简单分析
下载下来,然后用java工具装载,进行过滤
然后在实例中查看decryptionCipherKey
得到数组:124, 42, -66, -1, 21, -128, 113, 120, 76, 76, 32, -2, 114, 98, 119, 105
这时候借鉴了一下网上的思路,这里是base64转byte
所以反过来,byte转base64即可,
得到密钥:fCq+/xWAcXhMTCD+cmJ3aQ==
然后使用利用工具进行判断
因为使用了AES加密,所以要勾选AES加密,不然会出错,然后直接进行利用链利用
至此验证漏洞存在即可
0x04 分析工具JDumpSpider
使用:
java -jar JDumpSpider-1.0-SNAPSHOT-full.jar heapdump
ps:内容过多,这里仅截图一张了
为了方便查看复制到文档打开
拿到后梳理一下可能获取到的信息,例如:
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
这里值得注意的是,有些时候会存在版本差异,需要删除ua发包或者修改ua为
User-Agent:Nacos-Server
发包
pyload:
/nacos/v1/auth/users?accesstoken=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJuYWNvcyIsImV4cCI6MTY3NTQxMDg2OH0.ZVcH2lwvBYHQvt232ruk2jqO08Eag3LLpZSz899j0D0&username=test&password=test111
创建成功,正常登录账号
权限绕过
登录框任意输入,抓包拦截返回包,构建pyload,修改状态码
pyload:
{
这里的jwt作用不大,只是为了校验用户名而已,任意构造一个jwt都可以进行绕过,重要的是返回包的globalAdmin为true
放包后即可进入后台
这里案例nacos并没有public,所以也没有配置文件可翻,我们也就点到为止了,springboot未授权引发的漏洞存在很多,当然上述也只是一小部分组合拳利用,如果有更好的思路和利用方式的师傅欢迎私信一起交流~