Springboot之Actuator-heapdump漏洞
Springboot之Actuator-heapdump漏洞
免责声明:由于传播、利用本文所发布的而造成的任何直接或者间接的后果及损失,均由使用者本人承担
Springboot
Spring Boot为了解决Spring Framework的入门难度大、配置繁琐而诞生,简化了Spring框架的配置,达到了快速开发提高效率
Actuator
springboot下的一个监控服务,无访问控制的情况下,可以通过HTTP 和 JMX访问,也就意味着存在未授权访问漏洞。在其中,不同的断点对应着不同的目标信息
在渗透测试过程中,对攻击者来着,特别需要留意的几个端点
Endpoint ID | Description | exploit |
---|---|---|
/env | 主机运行开放的所有服务 | 根据开发的服务,利用历史披露漏洞 |
/heapdump | 内存转储文件 | 下载后提取shiroKey、ak/sk、springboot-admin-client账号密码等等 |
/trace/httptrace | 请求追踪信息 | cookie/session等会话凭证泄露 |
/actuator | 监控主节点 | 对端点来说,类似书签管理器 |
/refresh | 刷新配置 | 触发进程刷新,以此来执行我们传入的命令 |
补充:在springboot 1.x版本中,直接在上下文路径拼接断点即可访问。但是,到了springboot 2.x版本中,必须加入/actuator,例如
1 | https://www.example.com/env //version:1.x |
heapdump漏洞复现
这里演示heapdump的利用-从内存转储文件中来获取Java 应用程序的内存使用情况。虽然/env下有RCE漏洞,但是有一个Eureka-Client的功能依赖作为前置条件,还需搭配/refresh,没有/refresh,即使有env下的RCE,有Eureka-Client,也不可能利用成功。在实战中,对于笔者来说从没遇到过,反而heapdump 频率确实非常之高。
环境搭建
这里使用的是阿里云spring脚手架:https://start.aliyun.com/
pom.xml
引入actuator的依赖
1 | <dependency> |
application.properties
配置暴露所有actuator端点
1 | management.endpoints.web.exposure.include=* |
启动并访问
漏洞利用
解析heapdump有常用的三款工具:MAT、jvisualvm、JDumpSpider,比较推荐JDumpSpider,这里演示后两种
访问
jvisualvm
Java VisualVM,简称 JVisualVM,是 JDK 自带的一个图形化工具,用于监控、故障排除和性能调优 Java 应用程序。它位于 JAVA_HOME/bin 目录下,提供了丰富的功能,能够帮助开发人员对 Java 应用程序进行监控和分析。对于我们来说,就是可以直接查看heapdump中的信息。
装入 => 选择heapdump
后续对敏感信息的获取,比如shiro的密钥,ak/sk,Redis的明文密码等等等,都需要使用OQL语法,在oql控制台中进行查询
没装组件,凑个图
JDumpSpider
https://github.com/whwlsfb/JDumpSpider
这个比jvisualvm更人性化一点,毕竟jvisualvm不是为了做渗透的,它自动对敏感信息进行读取,我们就不用再用oql语句查询了
后面的信息就不截图了,总之得到了heapdump可以说目标机器已经被拿下了