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


完结!!!


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM