本文聚焦于 Java 生态中极具破坏性的 Spring4Shell (CVE-2022-22965) 远程代码执行漏洞。该漏洞源于 Spring Framework 在参数绑定机制上的缺陷,允许攻击者通过精心构造的 HTTP 请求,绕过现有的黑名单限制,利用 JDK 9 及以上版本引入的模块化特性(Class Loader),实现对服务器端受限属性的改写。
通过对漏洞利用链的拆解,本文演示了攻击者如何劫持 Tomcat 的日志配置参数(AccessLogValve),在 Web 目录下生成一个持久化的 Webshell 后门,从而获取服务器的完全控制权。
本文详细介绍了 Spring Cloud Gateway 远程代码执行漏洞(CVE-2022-22947) 的原理分析与实战复现。该漏洞源于 Spring Cloud Gateway 在开启 Actuator 端点时,过滤器(Filter)参数处理逻辑存在缺陷。攻击者可以通过发送特制的 POST 请求,利用 SpEL(Spring Expression Language) 表达式注入,在目标服务器上实现未经身份验证的远程代码执行。
复现过程中,我们通过 Actuator 接口动态添加路由,并在路由定义中嵌入恶意的 SpEL 表达式。当网关刷新路由配置时,系统会自动解析并执行该表达式,从而触发命令执行。