• spring actuator未授权之heapdump自动化利用【JDumpSpider】


    前言

    在日常得渗透测试工作中,经常遇到spring actuator未授权漏洞,而且在实际过程中也常常会下载到heapdump这个文件。了解过这个文件的人知道,Heap Dump也叫堆转储文件,是一个Java进程在某个时间点上的内存快照。Heap Dump是有着多种类型的。不过总体上heap dump在触发快照的时候都保存了java对象和类的信息。通常在写heap dump文件前会触发一次FullGC,所以heap dump文件中保存的是FullGC后留下的对象信息。
    我们可以通过Heap Dump做哪些事情?

    一般在Heap Dump文件中可以获取到(这仍然取决于heap dump文件的类型)如下信息:

    • 对象信息:类、成员变量、直接量以及引用值;
    • 类信息:类加载器、名称、超类、静态成员;
    • Garbage Collections Roots:JVM可达的对象;
    • 线程栈以及本地变量:获取快照时的线程栈信息,以及局部变量的详细信息。
      一般在渗透测试中我们会通过Eclipse MemoryAnalyzer工具对泄露的heapdump文件进行分析,查询加载到内存中的明文密码信息,比如redis密码,mysql数据库账号和密码。但是这样可能导致获取的敏感信息不全面,甚至无法获取到敏感信息,今天推荐一款自动化分析heapdumo的工具 - JDumpSpider。

    工具介绍

    工具简介

    HeapDump敏感信息提取工具
    项目地址:https://github.com/whwlsfb/JDumpSpider

    支持范围

    该工具暂支持提取以下类型的敏感信息

    数据源
        SpringDataSourceProperties
        WeblogicDataSourceConnectionPoolConfig
        MongoClient
        AliDruidDataSourceWrapper
    配置文件信息
        MapPropertySource
        OriginTrackedMapPropertySource
        MutablePropertySource
        ConsulPropertySource
        OSS(模糊搜索)
    Redis配置
        RedisStandaloneConfiguration
        JedisClient
    ShiroKey
        CookieRememberMeManager
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    工具使用

    本工具需要使用Oracle JDK 1.8版本(更高版本将导致异常)。

    $ java -jar .\target\JDumpSpider-1.0-SNAPSHOT-full.jar
    Missing required parameter: ‘’
    Usage: JDumpSpider [-hV]
    Extract sensitive information from heapdump file.
    Heap file path.
    -h, --help Show this help message and exit.
    -V, --version Print version information and exit.

    实战记录

     java -jar JDumpSpider-1.0-SNAPSHOT-full.jar heapdump
    
    • 1

    在这里插入图片描述

    结语

    有的时候光有思路,没用趁手的“兵器”是不能把战果最大化的,如果你拿着一把好武器,而且具备很好的思维,那么战果一定不凡!欢迎各位关注我的公众号:小白学IT

  • 相关阅读:
    ES6-ES12部分简单知识点总结,希望对大家有用~
    MindSpore:GPU CUDA +CentOS没有官方命令吗?
    为什么审计平台不适合进行数据库变更管理?
    【K8S系列】Service基础入门
    Ubuntu2204部署容器引擎Containerd
    C语言基础篇 —— 3.4 二重指针
    MYSQL 是如何保证binlog 和redo log同时提交的?
    进程间通信学习笔记(有名管道和无名管道)
    解决:文件拖拽后文件关闭或者闪退的问题!
    三大运营商乘风破浪,为什么离不开BAT等互联网企业?
  • 原文地址:https://blog.csdn.net/weixin_42380348/article/details/126369001