Struts2漏洞为何常被红队利用?

8 人参与

渗透测试或红队演练的武器库中,针对Apache Struts2框架的漏洞利用工具几乎总是占据显眼位置。这并非偶然,而是由Struts2自身的技术架构、历史沿革以及其在企业环境中的部署现状共同决定的。理解其背后的逻辑,能帮助我们更深刻地认识到应用安全中那些“经典”但顽固的风险点。

一个“靶面”广阔的遗留系统

Struts2的流行始于Web 2.0时代,大量政府、金融、能源及大型互联网企业的核心业务系统都基于此框架构建。这些系统往往生命周期极长,动辄运行十年以上。代码庞大、耦合度高、升级成本巨大,导致许多企业即使知道存在漏洞,也无法立即修复或替换。红队选择攻击Struts2,本质上是选择了一个存量巨大、更新迟缓的“高价值目标池”。攻击一个漏洞,可能意味着同时打开了数十甚至上百家关键机构的大门,这种投入产出比极具吸引力。

漏洞模式的“可预测性”与武器化便利

Struts2的漏洞,尤其是远程代码执行(RCE)类漏洞,常常根植于其核心机制——OGNL表达式解析。从经典的S2-016、S2-045到后来的S2-057,漏洞原理虽有差异,但攻击载荷的构造思路和利用点(如特定参数、请求头)往往有迹可循。这种模式化的漏洞特征,使得红队能够开发高度自动化、通用性强的攻击工具。一个精心编写的漏洞利用脚本,稍作修改就能适配多个漏洞编号,极大地简化了攻击链的构建过程。

再者,Struts2的RCE漏洞通常允许攻击者直接执行系统命令。这意味着一次成功的利用,几乎等同于获得了服务器的命令行控制权,后续的内网横向移动、权限维持和数据窃取都能以此为跳板迅速展开。这种“一击致命”的效果,完美契合了红队行动中追求高效率、高权限的战术目标。

防御体系中的感知盲区

许多企业的基础安全防护(如WAF、IDS/IPS)的规则库更新,可能滞后于Struts2最新漏洞利用方式的公开。红队利用的往往是经过混淆、变形的攻击载荷,能够轻易绕过基于特征匹配的静态防御。更棘手的是,这些遗留的Struts2应用可能部署在非标准端口,或者深藏在内部网络区域,从未被资产管理系统准确识别和纳入重点防护范围,从而成为监控视野外的“影子资产”。红队擅长发现并利用这类盲区。

不仅仅是技术,更是心理博弈

红队对Struts2的偏爱,还包含一层心理层面的考量。由于Struts2漏洞的“名声在外”,防守方在发现相关攻击告警时,有时会倾向于将其归类为互联网上广泛的、无目的的自动化扫描,而非针对性的高级攻击,从而可能降低响应优先级。红队恰恰可以利用这种“狼来了”的心理疲劳,将真实攻击隐藏在噪音之中。

说到底,Struts2漏洞成为红队利器,是一个关于技术债务、攻击效率和攻防不对称性的经典案例。它像一枚棱镜,折射出的是老旧技术栈在快速演进的安全威胁面前所暴露出的持久性风险。修补一个CVE编号或许只需几小时,但清理整个生态系统中遗留的技术债,却是一场漫长的战役。

参与讨论

8 条评论
  • Spectral

    这种老框架确实坑多,很多公司根本不敢动。

    回复
  • 锁匠侯

    看文章里说的OGNL问题,感觉跟之前那个S2-045原理差不多?

    回复
  • 小小搬运工

    我们公司就有个老系统用的Struts2,升级一次差点搞崩,现在只能硬着头皮用防火墙拦。

    回复
  • 狐火残梦

    所以那些告警经常被忽略是吧,怪不得红队喜欢用。

    回复
  • 墨韵生

    感觉说得挺明白的,老技术债就是这么麻烦。

    回复
  • 灯笼夜话

    有没有什么工具能比较好地检测这些变种攻击啊?

    回复
  • 渔歌客

    之前做渗透测试的时候,Struts2几乎是必测项,一打一个准。🤔

    回复
  • 虚空使者

    “影子资产”这个词用得挺准,内部一堆系统自己都理不清。

    回复