springboot不出外网获取被星号脱敏密码的明文

在利用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"))