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权限