Actuator是SpringBoot提供的一个开源的应用系统监控框架。在攻防场景中,经常会遇到Actuator配置不当的情况。攻击者可以直接下载heapdump堆转储文件,然后利用一些工具对heapdump文件进行分析,从而进一步获取敏感信息。一、jvisualvm分析jvisualvm是jdk自带的可视化java监控工具。直接在cmd命令行输入jvisualvm即可运行该工具。(1)通过jvisualvm加载heapdump文件(2)切换到OQL控制台选项卡。Springbootheapdump端点存在版本差异,构造OQL语句进行关键字查询获取明文密码。Springboot1.x版本:selects.value.toString()fromjava.util.Hashtable$Entryswhere/password/.test(s.key.toString())Springboot2.x版本:selects.value.toString()fromjava.util.LinkedHashMap$Entryswhere/password/.test(s.key.toString())2.jhat命令分析jhat是jdk自带的分析JVMheapdump文件的工具。(1)使用jhat命令分析heapdump文件,启动一个7000端口的http服务。备注:jhat后可以配置jvm参数,避免heapdump文件占用过多内存。(2)访问http服务,搜索关键字依次进入和查看对象,得到redis数据对象。(3)点击password,获取redis对象的明文密码。3.heapdump_tool敏感信息查询工具,本质上是基于jhat的,通过jhat解析heapdump文件,实现heapdump敏感信息查找。下载地址:https://toolaffix.oss-cn-beijing.aliyuncs.com/heapdump_tool.jar4.EclipseMemoryAnalyzer(MAT)EclipseMemoryAnalyzer(简称MAT)是一款功能丰富且易于操作的JVMHeap转储分析工具。可用于在springheapdump中查找密码明文。下载地址:https://www.eclipse.org/mat/downloads.php(1)使用MAT直接打开下载的heapdump文件,点击OQL标签,构造关键字查询语句。Springboot1.x版本:selectfromjava.util.Hashtable$EntryxWHERE(toString(x.key).contains(“password”))Springboot2.x版本:selectfromjava.util.LinkedHashMap$EntryxWHERE(toString(x.key).contains(“password”))(2)在java.util.LinkedHashMap$Entry实例的键值对中找到明文密码。
