• spring boot -- 如何在jvm堆信息中查找明文密码


    spring boot -- 如何在jvm堆信息中查找明文密码

    在测试的时候发现网站图标为小绿叶,确定为Spring boot框架,然后访问env页面,会泄露服务器环境变量,服务,账号密码等信息。

    在泄露的信息处可以看到dbconfig.dbs,数据访问链接等信息,确定为oracle数据库

    username为gzdlpw、但是密码默认的是使用 * 号替代,然后发现/jolokia、/actuator/jolokia接口是无法访问的,也无法使用POST方法访问/env接口,但是存在/heapdump接口,可以下载JVM堆信息

    访问http://xxxxxxx:8018/heapdump、下载JVM堆信息,可在堆信息中找到明文密码
    使用Eclipse Memory Analyzer打开下载的JVM堆文件
    点击OQL输入搜索语句,点击红色叹号,进行搜索
    然后输入OQL语句:“select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("password"))”,进行搜索
    逐个查看KEY的值,只有当KEY的值为我们要找的属性值时,对应的密码才为我们需要的密码
    如:KEY的值为“dbconfig.dbs[0].password”、与我们前面在env看到的属性值相同,即该密码为数据库密码
    即:密码为:gzdl!321
    spring boot 1.x版本的密码存在java.util.Hashtable$Entry实例的键值对中
    spring boot 2.x版本存储在java.util.LinkedHashMap$Entry实例的键值对中
    1 select * from org.springframework.web.context.support.StandardServletEnvironment
    2 select * from java.util.Hashtable$Entry x WHERE (toString(x.key).contains("password"))
    3 select * from java.util.LinkedHashMap$Entry x WHERE (toString(x.key).contains("password"))

    注:POST访问env端点修改属性,会破坏原有属性,影响网站系统正常使用


    完结!!!

  • 相关阅读:
    NFC Basics(基本NFC)——翻译自developer.android.com
    【LeetCode】Sort Colors 解题报告
    发送手机物理标识请求
    Java编程介绍
    emacs 中使用git diff命令行
    OpenJudge百炼习题解答(C++)--题4074:积水量
    编程之美2.9 斐波那契数列
    Application Architecture Determines Application Performance
    程序包javax.servlet.annotation不存在
    mysql 严格模式 Strict Mode说明
  • 原文地址:https://www.cnblogs.com/Excellent-person/p/14705573.html
Copyright © 2020-2023  润新知