0


SpringBoot 未授权访问漏洞挖掘

记一次某项目 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

获取文件路径

可获取到目标系统的依赖版本


本文转载自: https://blog.csdn.net/weixin_61496153/article/details/137641442
版权归原作者 tmj01 所有, 如有侵权,请联系我们删除。

“SpringBoot 未授权访问漏洞挖掘”的评论:

还没有评论