freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

0

1

2

3

4

5

6

7

8

9

Spring Boot Actuator未授权内存分析方法
yudays实验室 2022-07-19 11:18:23 262109
所属地 广东省

介绍

Actuator 是 Spring Boot 提供的用来对应用系统进行自省和监控的功能模块,借助于 Actuator 开发者可以很方便地对应用系统某些监控指标进行查看、统计等。在 Actuator 启用的情况下,如果没有做好相关权限控制,非法用户可通过访问默认的执行器端点(endpoints)来获取应用系统中的监控信息。

未授权访问可以理解为需要授权才可以访问的页面由于错误的配置等其它原因,导致其它用户可以直接访问,从而引发各种敏感信息泄露。

如何识别使用了Springboot框架的站点

1、查看ico图标(默认的情况下)

1658200117_62d62035d30026c3c8abc.png!small?1658200118542

2、通过报错信息

1658200133_62d62045ecddbef29124c.png!small?1658200134666

常见Spring Boot Actuator未授权访问

/dump - 显示线程转储(包括堆栈跟踪)
/autoconfig - 显示自动配置报告
/configprops - 显示配置属性
/trace - 显示最后几条HTTP消息(可能包含会话标识符)
/logfile - 输出日志文件的内容
/shutdown - 关闭应用程序
/info - 显示应用信息
/metrics - 显示当前应用的’指标’信息
/health - 显示应用程序的健康指标
/beans - 显示Spring Beans的完整列表
/mappings - 显示所有MVC控制器映射

/env - 提供对配置环境的访问

/heapdump - 转存堆文件

/restart - 重新启动应用程序

主要使用分析的文件heapdump文件

1、前期需要访问/env,来确定带星的信息,我们需要读取出来。

http://url/actuator/env

1658200234_62d620aa7ce3bf4b890c4.png!small?1658200235482

2、再次访问/heapdump文件

http://url/actuator/heapdump

3、得到一个heapdump的文件,使用java自带的软件jvisualvm进行分析。

C:\Program Files\Java\jdk1.8.0_231\bin\jvisualvm.exe

常用分析方法:

一、去星,获取星号信息(适用于数据库密码、面板密码、wx.secret

1、载入堆文件1658200326_62d62106809b304493a2b.png!small?16582003271402、通过前面的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、点击执行查询结果,出现实例

1658200387_62d62143a1ae229352f24.png!small?1658200388594

5、进入实例里面,即可找到带星的明文信息。

1658200416_62d621604d48540975843.png!small?1658200417329

6、假如出现不存在的明文信息的状态下,如:

1658200443_62d6217b63b282cfecc1d.png!small?1658200443956

7、发现password相连处未发现明文密码,那么就得使用另外一条语句

select s.value.toString() from java.util.Hashtable$Entry s where /password/.test(s.key.toString())

8、查询结果

1658200477_62d6219d6ae2508581899.png!small?1658200478195

二、分析shrio序列化KEY(适用于自定key)

1、通过访问站点,发现响应包或者请求包存在(remeberMe或者remeberme)

1658200525_62d621cd9870f62469701.png!small?1658200526335

2、下载heapdump文件,在类处过滤语句

org.apache.shiro.web.mgt.CookieRememberMeManager

1658200579_62d62203dabf7ef797f7a.png!small?1658200580480

3、点击展开,记录byte的值

1658200598_62d6221626a2eb0c3e32c.png!small?1658200598777

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

1658200637_62d6223d519648048a72f.png!small?1658200638001


# 系统安全 # 数据安全 # 漏洞分析
本文为 yudays实验室 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
攻防渗透宝典
yudays实验室 LV.4
这家伙太懒了,还未填写个人描述!
  • 16 文章数
  • 38 关注者
记一次从登录框到前台rce
2024-02-28
如何让代码审计更快速?
2022-05-30
无代理拦截数据包(bettercap+burp)
2021-09-16
文章目录