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端点修改属性,会破坏原有属性,影响网站系统正常使用


    完结!!!

  • 相关阅读:
    关于用户、用户组及文件权限的试题
    lvm-简介
    项目中用到的jar包简介(1)
    Centos7开启SSH服务
    2.docker架构,原理,安装及简单应用
    如何平滑将注册中心从Eureka迁移到Nacos?
    8.k8s连载--重新生成k8s token(kubeadm join报错及解决)
    7. 复制k8s Node节点 并重新初始化k8s-nodes2节点 (k8s连载)
    6. k8s + jenkins 实现持续集成(完)
    5.k8s基本命令汇总
  • 原文地址:https://www.cnblogs.com/Excellent-person/p/14705573.html
Copyright © 2011-2022 走看看