1
1
# Spring Boot Vulnerability Exploit CheckList
2
2
3
- SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全评估 checklist
3
+ Spring Boot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全评估 check list
4
4
5
5
6
6
7
- ## 零:路由知识
7
+ ## 零:路由和版本
8
8
9
- - spring boot 1.x 版本默认路由的根路径以 ` / ` 开始,2.x 统一以 ` /actuator ` 开始
9
+ ### 一:路由知识
10
+
11
+ - Spring Boot 1.x 版本默认内置路由的根路径以 ` / ` 开始,2.x 则统一以 ` /actuator ` 开始
10
12
- 有些程序员会自定义 ` /manage ` 、` /management ` 或 ** 项目相关名称** 为根路径
11
- - 默认路由名字,如 ` /env ` 有时候也会被程序员修改,如修改成 ` /appenv `
13
+ - 默认内置路由名字,如 ` /env ` 有时候也会被程序员修改,如修改成 ` /appenv `
14
+
15
+
16
+
17
+ ### 二:版本知识
18
+
19
+ > Spring Cloud 是基于 Spring Boot 来进行构建服务,并提供如配置管理、服务注册与发现、智能路由等常见功能的帮助快速开发分布式系统的系列框架的有序集合。
20
+
21
+
22
+
23
+ #### 常见组件的版本相互依赖关系:
24
+
25
+ ** spring-boot-starter-parent** 版本列表及相互依赖组件的版本参考:[ spring-boot-starter-parent] ( https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-parent )
26
+
27
+ ** spring-boot-dependencies** 版本列表及相互依赖组件的版本参考:[ spring-boot-dependencies] ( https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-dependencies )
28
+
29
+ ** spring-cloud-dependencies** 版本列表及相互依赖组件的版本参考: [ spring-cloud-dependencies] ( https://mvnrepository.com/artifact/org.springframework.cloud/spring-cloud-dependencies )
30
+
31
+
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 |
45
+
46
+
47
+
48
+ #### Spring Cloud 小版本号的后缀及含义:
49
+
50
+ | 版本号后缀 | 含义 |
51
+ | -------------- | --------------------------------------- |
52
+ | BUILD-SNAPSHOT | 快照版,代码不是固定,处于变化之中 |
53
+ | MX | 里程碑版 |
54
+ | RCX | 候选发布版 |
55
+ | RELEASE | 正式发布版 |
56
+ | SR2 | (修复错误和 bug 并再次发布的)正式发布版 |
12
57
13
58
14
59
@@ -69,7 +114,7 @@ SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全
69
114
70
115
71
116
72
- 参考 [ production-ready-endpoints] ( https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#production-ready-endpoints ) 和 [ spring-boot.txt] ( https://github.com/artsploit/SecLists/blob/master/Discovery/Web-Content/spring-boot.txt ) ,可能因为配置不当而暴露的路由可能会有 :
117
+ 参考 [ production-ready-endpoints] ( https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#production-ready-endpoints ) 和 [ spring-boot.txt] ( https://github.com/artsploit/SecLists/blob/master/Discovery/Web-Content/spring-boot.txt ) ,可能因为配置不当而暴露的默认内置路由可能会有 :
73
118
74
119
```
75
120
/actuator
@@ -125,7 +170,7 @@ SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全
125
170
126
171
- /env
127
172
128
- GET 请求 ` /env ` 会泄露环境变量信息,或者配置中的一些用户名,当程序员的属性名命名不规范 (例如 password 写成 psasword) 时,会泄露密码明文;
173
+ GET 请求 ` /env ` 会泄露环境变量信息,或者配置中的一些用户名,当程序员的属性名命名不规范 (例如 password 写成 psasword、pwd ) 时,会泄露密码明文;
129
174
130
175
同时有一定概率可以通过 POST 请求 ` /env ` 接口设置一些属性,触发相关 RCE 漏洞。
131
176
@@ -139,9 +184,9 @@ SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全
139
184
140
185
141
186
142
- ### 0x03:获取星号 * 遮掩的密码明文
187
+ ### 0x03:获取被星号脱敏的密码的明文
143
188
144
- > 访问 /env 接口时,spring actuator 会将一些带有敏感关键词(如 password)的属性名对应的属性值用 * 号替换达到脱敏的效果
189
+ > 访问 /env 接口时,spring actuator 会将一些带有敏感关键词(如 password、secret )的属性名对应的属性值用 * 号替换达到脱敏的效果
145
190
146
191
#### 利用条件:
147
192
@@ -227,7 +272,7 @@ Content-Type: application/json
227
272
Authorization: Basic dmFsdWU6MTIzNDU2
228
273
```
229
274
230
- 将其中的 ` dmFsdWU6MTIzNDU2 ` 部分使用 base64 解码,即可获得类似明文值 ` value:123456 ` ,其中的 ` 123456 ` 即是目标星号 * 遮掩的属性值明文 。
275
+ 将其中的 ` dmFsdWU6MTIzNDU2 ` 部分使用 base64 解码,即可获得类似明文值 ` value:123456 ` ,其中的 ` 123456 ` 即是目标星号 * 脱敏前的属性值明文 。
231
276
232
277
233
278
0 commit comments