记一次某项目 SpringBoot 未授权访问漏洞挖掘
简介
Actuator是 SpringBoot 提供的用来对应用系统进行自省和监控的功能模块,借助Actuator,开发者
可以很方便地对应用系统某些监控指标进行查看统计等。
常见端口信息
/info显示应用信息/shutdown关闭应用程序/restart重启应用程序/logfile输出日志文件内容/metrics显示应用的指标信息/auditevents显示审计事件信息/metrics/{name}显示具体指标/autocofig显示自动配置的使用情况/configgrops显示配置属性,包括默认配置/trace显示最近的http包信息(时间戳、http头、系统存活的cookie信息等)/heapdump返回一个压缩的hprof堆dump文件(JVM内存信息,分析明文密码)/mappings查看全部URI路径,以及它们和控制器(包含actuator端点)的映射关系/env
查看环境变量
(包含profile、系统环境变量和应用的propertries信息,可能泄露明文密码与接口信息)
/env/{name}查看具体变量值/jolokia/list查看是否存在ch.qos.logback.classic.jmx.JMXConfigurator 和 reloadByURL关键词,若存在有可能造成命令执行
扫描目标网站得到目录
访问 /actuator,查看哪些actuator endpoint 是开放的
访问 /metrics,查看泄露应用指标信息
访问 /env,查看泄露环境变量信息
访问 /heapdump 接口,可下载heapdump文件
HeapDump内存泄露漏洞
heapdump 称为堆转储文件,是java进程在某个时间内的快照,主要包含当生成快照时堆中的 java
对象和类的信息。攻击者可以直接下载heapdump堆转储文件,可通过以下3种工具来分析
heapdump文件获取一些敏感信息。
工具一:Jvisualvm
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())
select s.value.toString() from java.util.Hashtable$Entry s where /password/.test(s.key.toString())
在查找密码时,可结合网站 /env接口,检索关键词,使用被星号遮挡对应的属性作为QQL过滤条件
3.切换至类标签,在下方输入框限制检索条件java.util.Hashtable
切换不同的实例进行观察,查找用户名密码
工具二:Eclipse Memory Analyzer
Eclipse Memory Analyzer简称MAT。MAT是JVM HeapDump分析工具,可以用来查找spring
heapdumo中的密码明文。
Eclipse Memory Analyzer Open Source Project | The Eclipse FoundationThe Eclipse Foundation - home to a global community, the Eclipse IDE, Jakarta EE and over 415 open source projects, including runtimes, tools and frameworks.https://eclipse.dev/mat/downloads.php
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
heapdump_tool基于jhat,通过jhat解析heapdump文件,从而实现heapdump敏感信息搜索
jhat是jdk自带的用于分析JVM heapdump文件的工具
GitHub - wyzxxz/heapdump_tool: heapdump敏感信息查询工具,例如查找 spring heapdump中的密码明文,AK,SK等heapdump敏感信息查询工具,例如查找 spring heapdump中的密码明文,AK,SK等 - wyzxxz/heapdump_toolhttps://github.com/wyzxxz/heapdump_tool
执行命令:java -jar heapdump_tool.jar heapdump
推荐选择模式1,也就是全局模式,然后输入要找的关键字(如:password、shirokey等)
查询密码
获取IP
获取url
获取文件路径
可获取到目标系统的依赖版本
版权归原作者 tmj01 所有, 如有侵权,请联系我们删除。