heapdump未经授权漏洞利用

admin 2025年4月14日09:28:46评论1 views字数 3415阅读11分23秒阅读模式

    在实际渗透过程中碰到api泄露以及类似若以cms监控等,可以对heapdump文件进行导出,通过分析,可以获取一些敏感信息,通过利用泄露的敏感信息可以获取一些有用的资料,有的甚至可以直接获取服务器权限。本文对heapdump利用的方法进行总结和介绍。

1.1HeapDump及HeapDump_tools 简介

1.HeapDump简介

HeapDump 是 Java 虚拟机(JVM)在某一时刻内存使用情况的快照,记录了 JVM 堆中所有对象的详细信息,包括对象信息(对象的类名、字段值、引用关系等)、类元数据(类加载器、类名、静态字段等)、垃圾回收根对象(线程栈、静态变量等可以直接被 JVM 访问的对象)及线程的调用栈和局部变量等信息。

HeapDump主要用来诊断内存泄漏、排查内存溢出(OOM)及性能优化。

2.headdump_tool简介

Heapdump_tool 是一个 开源的命令行工具,专门用于分析 Java 的 Heap Dump(堆转储)文件。它基于 jhat(JDK 自带的堆分析工具)实现,简化对堆转储文件的敏感信息提取和内存问题诊断。https://github.com/wyzxxz/heapdump_tool

1.1.2Heapdump_tool常见参数

1. 工具启动

java -jar heapdump_tool.jar [heapdump_file]

参数说明:heapdump_file:待分析的堆转储文件路径(支持 .hprof、.gz 等格式)。

2. 交互式查询命令

进入工具界面后,可通过以下命令查询数据:

命令格式

功能

password

搜索所有包含password

的字符串(关键词查询)。

len=10

查找所有长度为 10 的字符串(如密码、Token)。

class="shiro"

按类名模糊搜索(如org.apache.shiro

相关类的实例)。

id=0x1a2b3c

通过对象 ID 查找具体对象信息(需已知目标对象的十六进制 ID)。

re=^[A-Z0-9]{10}$

使用正则表达式匹配字符串(如匹配特定格式的密钥)。

shirokey

直接提取 Shiro 框架的 Session ID 或加密密钥(针对 SpringBoot 应用)。

geturl

提取所有 URL 地址(如数据库连接字符串、API 端点)。

getfile

提取文件路径或文件名(如配置文件路径)。

getip

提取 IP 地址(如数据库 IP、服务器地址)。

all=true

显示所有查询结果(默认过滤非key-value

格式的数据)。

exit

退出工具。

3. 高级参数(启动时指定)

java -jar heapdump_tool.jar [heapdump_file] 

查询方式:

1. 关键词       例如 password 

2. 字符长度     len=10    获取长度为10的所有key或者value值

3. 按顺序获取   num=1-100 获取顺序1-100的字符

4. class模糊搜索  class=xxx 获取class的instance数据信息

5. id查询       id=0xaaaaa  获取id为0xaaaaa的class或者object数据信息

4. re正则查询    re=xxx  自定义正则查询数据信息

6.获取url,file,ip

shirokey 获取shirokey的值

geturl   获取所有字符串中的url

getfile  获取所有字符串中的文件路径文件名

getip    获取所有字符串中的ip

1.1.3漏洞挖掘

利用未授权访问的接口(如 Spring Boot Actuator 的 /actuator/heapdump 端点)下载 Heap Dump 文件,在若以监控系统以及一些api系统中可以直接获取/actuator/heapdump文件。

1.Spring Boot 1.x 版本及Spring Boot 2.x 版本常见端点及功能

(1)Spring Boot 1.x 版本

在 Spring Boot 1.x 中,Actuator 的端点路径是直接从根路径 / 开始的,例如 /health/env/metrics 等。

端点

功能

/configprops

显示所有@ConfigurationProperties

注解的配置类及其绑定的值。

/env

显示 Spring 的ConfigurableEnvironment

(环境变量和配置属性)。

/health

显示应用程序的健康状态(如数据库连接、磁盘空间等)。

/httptrace

显示最近的 HTTP 请求跟踪信息(如请求方法、响应状态码)。

/metrics

显示当前应用程序的监控指标(如内存使用、线程数、HTTP 请求计数等)。

/mappings

显示所有@RequestMapping

路径的整理列表(包括控制器和处理方法)。

/threaddump

显示 JVM 的线程堆栈信息。

/heapdump

下载整个 JVM 的堆转储文件(用于分析内存问题)。

/jolokia

提供 JMX-HTTP 桥接功能,允许通过 HTTP 访问 JMX Beans。

(2)Spring Boot 2.x 版本

在 Spring Boot 2.x 中,Actuator 的端点路径统一以 /actuator 为前缀,例如 /actuator/health、/actuator/env 等。这种设计更符合 RESTful 风格,并且便于区分 Actuator 端点与其他应用路径。

端点

功能

/actuator/configprops

显示所有@ConfigurationProperties

注解的配置类及其绑定的值。

/actuator/env

显示 Spring 的ConfigurableEnvironment

(环境变量和配置属性)。

/actuator/health

显示应用程序的健康状态(如数据库连接、磁盘空间等)。

/actuator/httptrace

显示最近的 HTTP 请求跟踪信息(如请求方法、响应状态码)。

/actuator/metrics

显示当前应用程序的监控指标(如内存使用、线程数、HTTP 请求计数等)。

/actuator/mappings

显示所有@RequestMapping

路径的整理列表(包括控制器和处理方法)。

/actuator/threaddump

显示 JVM 的线程堆栈信息。

/actuator/heapdump

下载整个 JVM 的堆转储文件(用于分析内存问题)。

/actuator/jolokia

提供 JMX-HTTP 桥接功能,允许通过 HTTP 访问 JMX Beans。

2.直接访问api接口测试

例如访问https://**.api.***.com/api/actuator/heapdump,如图2-1所示,直接下载该文件。

heapdump未经授权漏洞利用

图1 直接下载heapdump文件

3.敏感信息获取

(1)1.x获取

/configprops

/env

/health

/httptrace

/metrics

/mappings

/threaddump

/heapdump

/jolokia

(2)2.x版本获取

/actuator/configprops

/actuator/env

/actuator/health

/actuator/httptrace

/actuator/metrics

/actuator/mappings

/actuator/threaddump

/actuator/heapdump

/actuator/jolokia

如图2-2所示,泄露信息中包含密码等信息。

heapdump未经授权漏洞利用

图2-2 泄露信息查看

1.1.4实际利用案例

1.下载heapdump文件分析

heapdump_tool.jar及heapdump放在同一个目录,jdk为java8版本。执行命令:

java -jar heapdump_tool.jar heapdump

可以选择0和1两种模式,1是搜索全部数据,相对时间会长一些,如图2-3所示。

heapdump未经授权漏洞利用

图2-3 搜索所有的信息

(1)搜索密码

当全部信息搜索完毕后,可以执行搜索关键字进行搜索,例如password,heapdump_tool会将包含password关键字的信息全部列出来,如图2-4所示。

heapdump未经授权漏洞利用

 获取密码:Yuanch@anGb0lUo#0Aa

(2)搜索oss AccessKey及SecretKey

heapdump未经授权漏洞利用

3.获取ip地址

heapdump未经授权漏洞利用

4.获取url地址

heapdump未经授权漏洞利用

令总结

java -jar heapdump_tool.jar heapdump1

AccessKey、SecretKey

password

geturl

getip

getfile

原文始发于微信公众号(小兵搞安全):heapdump未经授权漏洞利用

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月14日09:28:46
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   heapdump未经授权漏洞利用https://cn-sec.com/archives/3950776.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息