Springboot heapdump信息泄露以及MAT分析
目录1. Springboot信息泄露
1.1 可能泄露路由列表
/api-docs
/v2/api-docs
/swagger-ui.html
/api.html
/sw/swagger-ui.html
/api/swagger-ui.html
/template/swagger-ui.html
/spring-security-rest/api/swagger-ui.html
/spring-security-oauth-resource/swagger-ui.html
/mappings
/actuator/mappings
/metrics
/actuator/metrics
/beans
/actuator/beans
/configprops
/actuator/configprops
/actuator
/auditevents
/autoconfig
/caches
/conditions
/docs
/dump
/env
/flyway
/health
/heapdump
/httptrace
/info
/intergrationgraph
/jolokia
/logfile
/loggers
/liquibase
/prometheus
/refresh
/scheduledtasks
/sessions
/shutdown
/trace
/threaddump
/actuator/auditevents
/actuator/health
/actuator/conditions
/actuator/env
/actuator/info
/actuator/loggers
/actuator/heapdump
/actuator/threaddump
/actuator/scheduledtasks
/actuator/httptrace
/actuator/jolokia
/actuator/hystrix.stream
/trace
:显示最近的http包信息,可能泄露当前系统存活的Cookie信息。
/env
:应用的环境信息,包含Profile、系统环境变量和应用的properties信息,可能泄露明文密码与接口信息。
/jolokia
:RCE漏洞
/heapdump
:JVM内存信息,分析出明文密码
1.2 heapdump
Heap Dump也叫堆转储文件,是一个Java进程在某个时间点上的内存快照。
可以使用Eclipse MemoryAnalyzer 工具对泄露的heapdump文件进行分析,查询加载到内存中的明文密码信息。
独立版下载地址:http://www.eclipse.org/mat/downloads.php
2 实际环境
2.1 Springboot信息泄露测试
Burpsuite Intruder模块扫描
2.2 heapdump读取
2.2 heapdump分析
spring boot 1.x 版本 heapdump 查询结果,最终结果存储在 java.util.Hashtable$Entry 实例的键值对中
select * from org.springframework.web.context.support.StandardServletEnvironment
select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("password"))
spring boot 2.x 版本 heapdump 查询结果,最终结果存储在 java.util.LinkedHashMap$Entry 实例的键值对中:
select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("password"))
读取Redis明文密码