在利用springboot的系统应用中,访问
env
或/actuator/heapdump
接口时,会将password、key等属性的值用******
号显示出来,以防止敏感信息的泄露。
利用前提:
Springboot 1.x中可GET 请求访问
/heapdump
Springboot 2.x中可GET 请求访问
/actuator/heapdump
利用方法:
1: 找到想要获取的属性名
GET 请求目标网站的 /env
或 /actuator/env
接口,搜索 ******
关键词,找到想要获取的被星号 * 遮掩的属性值对应的属性名。如下图所示:
2: 下载 jvm heap 信息
GET
请求目标的 /heapdump
或 /actuator/heapdump
接口,下载应用的JVM 堆信息。
3: 使用 MAT工具查看 获得JVM 堆信息的敏感信息。
spring boot 1.x 中, heapdump 查询结果,最终结果存储在 java.util.Hashtable$Entry 实例的键值对中,所以可以使用以下语句进行查询,快速过滤。
select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("azure.application-insights.instrumentation-key"))
spring boot 2.x 中, heapdump 查询结果,最终结果存储在 java.util.LinkedHashMap$Entry 实例的键值对中,所以可以使用以下语句进行查询,快速过滤。
select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("azure.application-insights.instrumentation-key"))