Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 93ff76c

Browse files
committed
Update README.md
1 parent 0539f24 commit 93ff76c

File tree

1 file changed

+37
-16
lines changed

1 file changed

+37
-16
lines changed

‎README.md

Lines changed: 37 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,20 @@
1-
## SpringBoot 漏洞利用及技巧
1+
# SpringBoot 漏洞利用及技巧
22

33
SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全评估 checklist
44

55

66

7-
### 零:路由知识
7+
## 零:路由知识
88

99
- Spring 1.x 的路由通常以根目录 `/` 开始,2.x 统一以 `/actuator` 作为根路径
1010
- 有些程序员会自定义 `/manage``/management`**项目相关名称** 为根路径
1111
- 默认端点名字,如 `/env` 有时候也会被程序员修改,如修改成 `/appenv`
1212

1313

1414

15-
### 一:信息泄露
15+
## 一:信息泄露
1616

17-
#### 0x01:路由地址及接口调用详情泄漏
17+
### 0x01:路由地址及接口调用详情泄漏
1818

1919
开发环境切换为线上生产环境时,相关人员没有更改配置文件或忘记环境切换,导致此漏洞;
2020

@@ -46,7 +46,9 @@ SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全
4646
/actuator/mappings
4747
/metrics
4848
/actuator/metrics
49+
/beans
4950
/actuator/beans
51+
/configprops
5052
/actuator/configprops
5153
```
5254

@@ -56,7 +58,7 @@ SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全
5658

5759

5860

59-
#### 0x02:配置不当暴露的接口其他接口
61+
### 0x02:配置不当而暴露的路由
6062

6163
参考 [production-ready-endpoints](https://docs.spring.io/spring-boot/docs/1.5.10.RELEASE/reference/htmlsingle/#production-ready-endpoints) ,可能因为配置不当而暴露的路由主要有:
6264

@@ -98,7 +100,7 @@ SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全
98100

99101
- /env
100102

101-
GET 请求会泄露环境变量信息,或者配置中的一些用户名(偶尔会泄露密码明文);
103+
GET 请求 `/env` 会泄露环境变量信息,或者配置中的一些用户名(偶尔会泄露密码明文);
102104

103105
同时有一定概率可以通过 POST 请求 `/env` 接口设置一些属性,触发相关 RCE 漏洞。
104106

@@ -112,32 +114,32 @@ SpringBoot 相关漏洞学习资料,利用方法和技巧合集,黑盒安全
112114

113115

114116

115-
#### 0x03:获取星号填充的密码明文
117+
### 0x03:获取星号填充的密码明文
116118

117119

118120

119121

120122

121-
### 二:远程代码执行
123+
## 二:远程代码执行
122124

123125
> 由于 springboot 很多漏洞是多方面的组件原因导致的,所以有些漏洞名字起的不太正规,能区分即可。
124126
125127

126128

127-
#### 0x01:SpEL RCE
129+
### 0x01:SpEL RCE
128130

129131

130132

131-
#### 0x02:spring cloud SnakeYAML RCE
133+
### 0x02:spring cloud SnakeYAML RCE
132134

133-
**利用条件:**
135+
#### **利用条件:**
134136

135137
- 目标使用了 spring-cloud 相关组件
136138
- 可以请求攻击者的 HTTP 服务器拉取文件(请求可出外网)
137139

138140

139141

140-
**利用方法:**
142+
#### **利用方法:**
141143

142144
**步骤一:** 托管 yml 和 jar 文件
143145

@@ -212,19 +214,38 @@ Content-Type: application/json
212214

213215

214216

215-
#### 0x03:xstream deserialization RCE
217+
#### **漏洞原理:**
218+
219+
1. spring.cloud.bootstrap.location 属性被设置为外部恶意 yml 文件 url 地址
220+
2. refresh 触发受害机器请求远程 HTTP 服务器上的 yml 文件,获得其内容
221+
3. SnakeYAML 由于存在反序列化漏洞,所以解析恶意 yml 内容时会完成指定的动作
222+
4. 先是触发 java.net.URL 去拉取远程 HTTP 服务器上的恶意 jar 文件
223+
5. 然后是寻找 jar 文件中实现 javax.script.ScriptEngineFactory 接口的类并实例化
224+
6. 实例化类时执行恶意代码,造成 RCE 漏洞
225+
226+
227+
228+
#### 漏洞分析:
229+
230+
[Exploit Spring Boot Actuator 之 Spring Cloud Env 学习笔记](https://www.anquanke.com/post/id/195929)
231+
232+
233+
234+
235+
236+
### 0x03:xstream deserialization RCE
216237

217238

218239

219-
#### 0x04:reload logback.xml JNDI RCE
240+
### 0x04:reload logback.xml JNDI RCE
220241

221242

222243

223-
#### 0x05:h2 database query RCE
244+
### 0x05:h2 database query RCE
224245

225246

226247

227-
#### 0x06:jdbc url deserialization RCE
248+
### 0x06:jdbc url deserialization RCE
228249

229250

230251

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /