Spring Actuator信息泄露HeapDump
source link: https://blog.51cto.com/u_9652359/5508872
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
Spring Actuator信息泄露HeapDump
推荐 原创HeapDump文件是JVM虚拟机运行时内存的一个快照,通常用于性能分析等,但是因为其保存了对象、类等相关的信息,如果被泄露也会造成信息泄露。有多种方式可以获取到HeapDump信息,如使用jmap、jconsole可以主动获取到信息,在JAVA开发中引入Spring Actuator后,如果配置不当可以通过前台访问下载HeapDump文件,从而导致信息泄露。
(一)如下在POM.XML文件中引入的依赖:
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
(二)在application.properties或者application.yml文件中开启heapdump端点的监控:
(三)如果采用的springsecurity,在拦截这里放行了/actuator相关的资源:
如果是其他拦截或者过滤的可以看看是否进行了有效的拦截过滤。
三、测试访问
(一) http://127.0.0.1:8088/actuator/ 查看泄露的端点信息
(二)127.0.0.1:8088/actuator/heapdump 下载heapdump文件,泄露JAVA堆dump信息:
四、查看HeapDump文件中保存的密码
(一)有多种方式可以查看HeapDump文件,常见的如Memory Analyzer工具以及在安装了JDK6U7及以上版本会自动安装的Java VisualVM工具,这里使用Java VisualVM,路径在jdk1.8.0_271\bin目录,找到jvisualvm.exe打开Java VisualVM:
相关手册:
https://docs.oracle.com/javase/8/docs/technotes/guides/visualvm/intro.html
(二)通过Java VisualVM打开刚下载到的HeapDump文件:
(三)载入后打开QOL控制台:
在查询编辑器输入查询语句,然后点击执行:
select s from java.lang.String s where /pass/.test(s.value.toString())
select s.value.toString() from java.lang.String s where /pass/.test(s.value.toString())
select s.value.toString() from java.util.Hashtable$Entry s where /password/.test(s.key.toString())
通过上述步骤找到密码。
Recommend
About Joyk
Aggregate valuable and interesting links.
Joyk means Joy of geeK