Spring Cloud Function现SPEL 表达式漏洞,SPEL 表达式是个啥?

发布网友 发布时间:2024-10-24 15:26

我来回答

1个回答

热心网友 时间:2024-11-10 09:59

Spring Cloud Function现SPEL 表达式漏洞的详细解释

在近期的测试中,Spring Cloud Function 的官方案例揭示了该框架中一个关于SPEL表达式的注入漏洞。这个漏洞使得攻击者能够利用SPEL表达式来触发远程命令执行。

具体来说,Spring Cloud Function中的RoutingFunction类在处理请求头中的“spring.cloud.function.routing-expression”参数时,将其直接作为SPEL表达式进行处理,导致了SPEL表达式注入的漏洞。攻击者可以利用这个漏洞来执行任意代码。

受影响的版本范围是从3.0.0.M3到3.2.2。

SPEL(Spring表达式语言)是一种强大的表达式语言,它具备查询和操作运行时对象导航图的功能。其语法类似于传统EL(表达式语言),但具有额外的功能,包括函数调用和简单字符串的模板功能。SpEl是Spring社区为了提供一种简单且高效的表达式语言而设计的,它的设计初衷是为了与Spring产品组的其他组件紧密结合。

关于SPEL漏洞的漏洞形态类似于命令注入。下面是一个简单的漏洞示例。

通过设置请求参数来实现远程命令执行。

创建一个可执行Spel的Controller,直接获取用户输入的参数,并通过Spel表达式解析器执行。

在浏览器中输入特定地址,可以触发命令执行,如调用本地计算器。

除了直接执行命令外,还可以通过调用类的静态方法实现相同的功能。

漏洞原因在于SpringCloud Function的RoutingFunction功能,这个功能旨在通过HTTP请求与单个函数进行交互。在请求的headers中添加“spring.cloud.function.routing-expression”参数后,SpringCloud Function会直接将这个参数内容带入到SPEL中进行查询,从而导致了SPEL漏洞注入。

官方已发布了此漏洞的补丁,建议相关用户尽快应用补丁并关注官方的更新版本,以进行防护。

在日常开发中,需多加注意避免使用如表达式注入、SQL注入等问题,并持续学习安全知识,提升自我。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com