记一次某项目 SpringBoot 未授权访问漏洞挖掘
目录
简介
常见端口信息
HeapDump内存泄露漏洞
工具一:Jvisualvm
工具二:Eclipse Memory Analyzer
工具三:HeapDump_tool
Actuator是 SpringBoot 提供的用来对应用系统进行自省和监控的功能模块,借助Actuator,开发者
可以很方便地对应用系统某些监控指标进行查看统计等。
查看环境变量
(包含profile、系统环境变量和应用的propertries信息,可能泄露明文密码与接口信息)
扫描目标网站得到目录
访问 /actuator,查看哪些actuator endpoint 是开放的
访问 /heapdump 接口,可下载heapdump文件
heapdump 称为堆转储文件,是java进程在某个时间内的快照,主要包含当生成快照时堆中的 java
对象和类的信息。攻击者可以直接下载heapdump堆转储文件,可通过以下3种工具来分析
heapdump文件获取一些敏感信息。
Jvisualvm是jdk自带的可视化java监控工具,位于jdk安装目录的bin目录下
1.打开jvisualvm.exe,加载heapdump文件
2.构造QQL语句,获取密码
select s.value.toString() from java.lang.String s where /pass/.test(s.value.toString())
3.切换至类标签,在下方输入框限制检索条件java.util.Hashtable
切换不同的实例进行观察,查找用户名密码
Eclipse Memory Analyzer简称MAT。MAT是JVM HeapDump分析工具,可以用来查找spring
heapdumo中的密码明文。
1.使用MAT直接打开下载的 heapdump 文件
2.点击OOL标签,构造语句进行关键字查询:
SpringBoot1.x:
select * from java.util.Hashtable$Entry s WHERE (toString(s.key).contains("password"))
SpringBoot2.x:
select * from java.util.LinkedHashMap$Entry s WHERE (toString(s.key).contains("password"))
select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("password"))
heapdump_tool基于jhat,通过jhat解析heapdump文件,从而实现heapdump敏感信息搜索
jhat是jdk自带的用于分析JVM heapdump文件的工具
执行命令:java -jar heapdump_tool.jar heapdump
推荐选择模式1,也就是全局模式,然后输入要找的关键字(如:password、shirokey等)
查询密码
获取IP
获取url
获取文件路径
可获取到目标系统的依赖版本