zoukankan      html  css  js  c++  java
  • 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端点修改属性,会破坏原有属性,影响网站系统正常使用


    完结!!!

  • 相关阅读:
    Android通过流播放声音
    Android 凑热闹的MusicPlay
    ANDROID开发之SQLite详解
    Android中Bitmap和Drawable
    java synchronized详解
    android 使用广播监听网络状态
    你想不到的!CSS 实现的各种球体效果【附在线演示】
    18(19).迭代器协议和生成器
    18.函数复习,文件处理b模式(二进制处理),文件处理其他高级玩法
    17.python文件处理
  • 原文地址:https://www.cnblogs.com/Excellent-person/p/14705573.html
Copyright © 2011-2022 走看看