0
点赞
收藏
分享

微信扫一扫

spring框架远程代码执行漏洞(CVE-2017-4971)

yongxinz 2022-03-17 阅读 90

漏洞影响

影响版本:Spring WebFlow 2.4.0 - 2.4.4

漏洞复现

搭建漏洞环境并访问

点击左上角登录,使用左边给的用户名密码登录

登录后

访问 id=1的酒店http://your-ip:8080/hotels/1,点击预订按钮“Book Hotel”,填写相关信息后点击“Proceed”

点击confirm时,进行抓包

 使用如下反弹shell的Payload

 攻击机监听端口1234

 

放包,即可获取到shell

原理

就是在订阅酒店处,存在一个命令执行,直接调用了两个函数,这两个函数,一个是:addDefaultMappings ,一个是 addModelBindings。

其中,直接控制field这个值的函数是addDefaultMappings,且未做过滤,而addModelBindings是直接获取的java的一个配置文件,由配置文件来确定是否有 binder 节点,如果有,就无法触发代码执行。所以条件有两个:

(1)binder节点为空;

(2) useSpringBeanBinding 默认值(false)未修改。

由此可实际在代码中找到该页面,节点为空(代替命令执行语句)+默认值为false(点击Confirm按钮

举报

相关推荐

0 条评论