@@ -6,42 +6,42 @@ Spring Boot 相关漏洞学习资料,利用方法和技巧合集,黑盒安
6
6
7
7
## 零:路由和版本
8
8
9
- ### 一 :路由知识
9
+ ### 0x01 :路由知识
10
10
11
11
- Spring Boot 1.x 版本默认内置路由的根路径以 ` / ` 开始,2.x 则统一以 ` /actuator ` 开始
12
12
- 有些程序员会自定义 ` /manage ` 、` /management ` 或 ** 项目相关名称** 为根路径
13
13
- 默认内置路由名字,如 ` /env ` 有时候也会被程序员修改,如修改成 ` /appenv `
14
14
15
15
16
16
17
- ### 二 :版本知识
17
+ ### 0x02 :版本知识
18
18
19
19
> Spring Cloud 是基于 Spring Boot 来进行构建服务,并提供如配置管理、服务注册与发现、智能路由等常见功能的帮助快速开发分布式系统的系列框架的有序集合。
20
20
21
21
22
22
23
23
#### 常见组件的版本相互依赖关系:
24
24
25
- ** spring-boot-starter-parent** 版本列表及相互依赖组件的版本参考:[ spring-boot-starter-parent] ( https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent )
25
+ | 依赖项 | 版本列表及依赖组件版本 |
26
+ | -------------------------- | ------------------------------------------------------------ |
27
+ | spring-boot-starter-parent | [ spring-boot-starter-parent] ( https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent ) |
28
+ | spring-boot-dependencies | [ spring-boot-dependencies] ( https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies ) |
29
+ | spring-cloud-dependencies | [ spring-cloud-dependencies] ( https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies ) |
26
30
27
- ** spring-boot-dependencies** 版本列表及相互依赖组件的版本参考:[ spring-boot-dependencies] ( https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies )
28
31
29
- ** spring-cloud-dependencies** 版本列表及相互依赖组件的版本参考: [ spring-cloud-dependencies] ( https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies )
30
32
33
+ #### ` Spring Cloud ` 与 ` Spring Boot ` 大版本之间的依赖关系:
31
34
32
-
33
- #### ` Spring Cloud ` 大版本与 ` Spring Boot ` 大版本之间的依赖关系:
34
-
35
- | Spring Cloud | Spring Boot |
36
- | ------------ | ------------------------------------------------ |
37
- | Angel | 兼容 Spring Boot 1.2.x |
38
- | Brixton | 兼容 Spring Boot 1.3.x,也兼容 Spring Boot 1.4.x |
39
- | Camden | 兼容 Spring Boot 1.4.x,也兼容 Spring Boot 1.5.x |
40
- | Dalston | 兼容 Spring Boot 1.5.x,不兼容 Spring Boot 2.0.x |
41
- | Edgware | 兼容 Spring Boot 1.5.x,不兼容 Spring Boot 2.0.x |
42
- | Finchley | 兼容 Spring Boot 2.0.x,不兼容 Spring Boot 1.5.x |
43
- | Greenwich | 兼容 Spring Boot 2.1.x |
44
- | Hoxton | 兼容 Spring Boot 2.2.x |
35
+ | Spring Cloud | Spring Boot |
36
+ | ------------ | ------------------------------------ |
37
+ | Angel | 兼容 Spring Boot 1.2.x |
38
+ | Brixton | 兼容 Spring Boot 1.3.x、1.4.x |
39
+ | Camden | 兼容 Spring Boot 1.4.x、1.5.x |
40
+ | Dalston | 兼容 Spring Boot 1.5.x,不兼容 2.0.x |
41
+ | Edgware | 兼容 Spring Boot 1.5.x,不兼容 2.0.x |
42
+ | Finchley | 兼容 Spring Boot 2.0.x,不兼容 1.5.x |
43
+ | Greenwich | 兼容 Spring Boot 2.1.x |
44
+ | Hoxton | 兼容 Spring Boot 2.2.x |
45
45
46
46
47
47
@@ -53,7 +53,7 @@ Spring Boot 相关漏洞学习资料,利用方法和技巧合集,黑盒安
53
53
| MX | 里程碑版 |
54
54
| RCX | 候选发布版 |
55
55
| RELEASE | 正式发布版 |
56
- | SR2 | (修复错误和 bug 并再次发布的)正式发布版 |
56
+ | SRX | (修复错误和 bug 并再次发布的)正式发布版 |
57
57
58
58
59
59
@@ -168,17 +168,17 @@ Spring Boot 相关漏洞学习资料,利用方法和技巧合集,黑盒安
168
168
169
169
其中对寻找漏洞比较重要接口的有:
170
170
171
- - /env
171
+ - ` /env ` 、 ` /actuator/env `
172
172
173
173
GET 请求 ` /env ` 会泄露环境变量信息,或者配置中的一些用户名,当程序员的属性名命名不规范 (例如 password 写成 psasword、pwd) 时,会泄露密码明文;
174
174
175
175
同时有一定概率可以通过 POST 请求 ` /env ` 接口设置一些属性,触发相关 RCE 漏洞。
176
176
177
- - /jolokia
177
+ - ` /jolokia `
178
178
179
179
通过 ` /jolokia/list ` 接口寻找可以利用的 MBean,触发相关 RCE 漏洞;
180
180
181
- - /trace
181
+ - ` /trace `
182
182
183
183
一些 http 请求包访问跟踪信息,有可能发现有效的 cookie 信息
184
184
@@ -192,6 +192,7 @@ Spring Boot 相关漏洞学习资料,利用方法和技巧合集,黑盒安
192
192
193
193
- 目标网站存在 ` /jolokia ` 或 ` /actuator/jolokia ` 接口
194
194
- 目标使用了 ` jolokia-core ` 依赖(版本要求暂未知)
195
+ - 目标使用了 ` spring-cloud ` 依赖(具体待补充)
195
196
196
197
197
198
@@ -203,7 +204,7 @@ GET 请求目标网站的 `/env` 或 `/actuator/env` 接口,搜索 `******`
203
204
204
205
205
206
206
- ##### 步骤二: 利用 jolokia 的 ` org.springframework.cloud.context.environment ` Mbean获取明文
207
+ ##### 步骤二: jolokia 调用 ` org.springframework.cloud.context.environment ` Mbean 获取明文
207
208
208
209
将下面示例中的 ` security.user.password ` 替换为实际要获取的属性名,直接发包;明文值结果包含在 response 数据包中的 ` value ` 键中。
209
210
0 commit comments