https://github.com/LandGrey/SpringBootVulExploit
利用条件:
可正常 GET 请求目标 /heapdump 或 /actuator/heapdump 接口
利用方法:
步骤一: 找到想要获取的属性名
GET 请求目标网站的 /env 或 /actuator/env 接口,搜索 ****** 关键词,找到想要获取的被星号 * 遮掩的属性值对应的属性名。步骤二: 下载 jvm heap 信息
下载的 heapdump 文件大小通常在 50M—500M 之间,有时候也可能会大于 2GGET 请求目标的 /heapdump 或 /actuator/heapdump 接口,下载应用实时的 JVM 堆信息
步骤三: 使用 MAT 获得 jvm heap 中的密码明文
参考 文章 方法,使用 Eclipse Memory Analyzer 工具的 OQL 语句 select * from org.springframework.web.context.support.StandardServletEnvironment, 辅助快速过滤分析,获得密码明文
https://www.eclipse.org/mat/downloads.php
参考https://landgrey.me/blog/16/
注:下载的.hprof.gz解压后在Memory Analyzer中可能会报错:
An internal error occurred during: “Parsing heap dump from ‘C:\Users\Desktop\111\heapdump2020-08-07-15-11-live860479381145369758.hprof'”.
java.lang.ArrayIndexOutOfBoundsException
此时重新下载heapdump即可。