silenceismine2024-02-19文章来源:SecHub网络安全社区
Spring 是 JAVA web 里非常常见的组件了, 自然也是研究的热门, 好用的漏洞主要是 Spring Boot 相关的漏洞。
Spring Boot 基本上是 Spring 框架的扩展。 Actuator 是 Springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator ,开发者可以很方便地对应用系统的某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点( endpoints )来获取应用系统中的监控信息。
FOFA:
app="vmware-SpringBoot-Framework"
body=" Whitelabel Error Page"
图标:
在网站标题中会有一个树叶的图标


默认页面:
Whitelabel Error Page页面

swagger接口页面/swagger-ui.html:

在图虎上利用关键词 body="Whitelabel Error Page" 找到利用springboot框架搭建的网站 尝试未授权访问 添加后缀/actuator 发现成功访问接口

进入/actuator/env 查看相关配置信息(/actuator/env 查看全部环境属性,可以查询到一些敏感信息 例如redis的ip和端口 数据库的账号和密码 但大部分密码都存在加密) 查找关键词 password 发现 存在数据库密码 但进行加密 查看不了

再次查看其他接口 发现/actuator/heapdump没有禁止访问 (/heapdump Heapdump,即堆转储文件,是一个Java进程在某个时间点上的内存快照。HeapDump记录了JVM中堆内存运行的情况,保存了Java对象、类以及线程栈以及本地变量等信息,最重要的是里面可能存有数据库密码信息。) 访问 自动下载heapdump文件


利用MemoryAnalyzer工具打开heapdump分析。
利用查找语句
select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("password"))

然后再次返回到 /actuator/env 查看数据库存在的端口 查看到是 3501端口

然后利在cmd命令下
mysql -h xxxxx -P xxxx -u root -p
连接数据库

连接成功
在数据库中找到 管理员登录的账号和密码

然后利用御剑查找网站后台登录接口


登录成功

发现ueditor编辑器组件,测试文件上传发现无法上传jsp脚本文件,但是可以通过ueditor的在线文件管理功能和已有的一些路径信息,可以确认网站的web绝对路径
E:/xxxx/project/xxxxx/


结合前面拿到的mysql权限,可以尝试直接往web目录中写入webshell
先查看mysql读写权限,可以看到secure_file_priv= 即没有对读写权限有所限制

直接使用select 'XXX' into outfile 'web服务根路径';尝试写入webshell
首先尝试写入了一个蚁剑jsp码到ueditor的绝对路径中

访问发现上传成功了,但是没有解析

后面分析发现是jsp码的换行符引起的,换一个哥斯拉的jsp码试试

访问发现正常解析并且连接成功

直接就是system权限
