技术分析 | Struts2 S2-048漏洞:跟踪攻击趋势,成功检测防御

简介: 7月7日,Apache Struts官方发布了漏洞编号为:S2-048的高危漏洞公告。 阿里云安全团队2小时内发布官方安全建议,跟踪S2-048的全球攻击趋势,并对不同漏洞版本进行了对比分析。 目前,阿里云云盾态势感知已支持检测,WAF默认支持防御。

7月7日,Apache Struts官方发布了漏洞编号为:S2-048的高危漏洞公告。

阿里云安全团队2小时内发布官方安全建议,跟踪S2-048的全球攻击趋势,并对不同漏洞版本进行了对比分析。


image

目前,阿里云云盾态势感知已支持检测,WAF默认支持防御。

一、影响范围

如果在ApacheStruts 2.3.x系列中启用了struts2-struts1-plugin插件,会受到该漏洞的影响。

二、攻击源分析

阿里云安全团队对S2-048在全球范围内的攻击源进行分析。

image


其中,有3/4的攻击源来自国内的北京、上海地区,1/4来自海外(美国、韩国)和香港地区。

三、原理及利用方法分析

在SaveGangsterAction.java的文件里看的有execute方法的实现,其中gforn.getName()是攻击者可控的,gforn.getName()的值可以带入messages结构中;


image


在Struts1Action.java里可以看到,其实是调用SaveGangsterAction.execute方法,然后再调用getText(msg.getKey())

getText方法会把actionmessages传递给com.opensymphony.xwork2.util.LocalizedTextUtil.getDefaultMessage ,

其中又调用了com.opensymphony.xwork2.util.TextParseUtil.translateVariables,它用来调用OGNL 表达式用处理字符串表达式;

image

使用EL表达式简单测试$(1>2);


image


漏洞测试生效。

四、漏洞对比分析

阿里云安全团队将S2-045及S2-048漏洞的利用原理做了对比分析。


image


对比S2-045和S2-048的漏洞攻击次数发现,S2-045的危害程度和关注度比S2-048高;在S2-048漏洞爆发后,由于未公开POC和利用工具,当天被利用攻击的几率比较小,安全风险相对较低。

image

五、安全建议

  • 及时检测是否受到漏洞影响:使用的Struts是 2.3.x版本,是否启用了struts2-struts1-plugin插件。使用阿里云云盾态势感知进行漏洞检测。
  • 阿里云上用户可以禁用、关闭(删除)struts-2.3.xappsstruts2-showcase.war包; 建议关闭devmod模式(请根据自身业务情况决定是否关闭)。
  • 开发者可以使用resourcekeys替代,将原始消息直接传递给ActionMessage的方式,以此作为根治措施。

正确方式:

messages.add("msg",new ActionMessage("struts1.gangsterAdded", gform.getName()))

错误方式:

messages.add("msg",new ActionMessage("Gangster " + gform.getName() + " wasadded"))
  • 建议将Struts2升级到最新版本2.5.10.1。
  • 使用阿里云云盾WAF对该漏洞进行防御。

原文链接

目录
相关文章
|
安全 Java 应用服务中间件
WebLogic Server 远程代码执行漏洞(CVE-2023-21839/CNVD-2023-04389)
WebLogic Server 存在远程代码执行漏洞,攻击者通过特定Payload对目标服务器进行恶意利用从而获取服务器控制权限,进一步操作。
1111 1
|
数据安全/隐私保护 开发者 异构计算
阿里巴巴开源可控视频生成框架VideoComposer!(内含体验、推理实践干货)
8月16日,时间、空间可控的视频生成模型 VideoComposer 在魔搭社区开源。
阿里巴巴开源可控视频生成框架VideoComposer!(内含体验、推理实践干货)
|
移动开发 负载均衡 安全
服务器存在缓慢的HTTP拒绝服务攻击
服务器存在缓慢的HTTP拒绝服务攻击
2642 0
服务器存在缓慢的HTTP拒绝服务攻击
|
缓存 网络协议 移动开发
slowhttptest慢攻击工具介绍
slowhttptest介绍 Slowhttptest是依赖HTTP协议的慢速攻击DoS攻击工具,设计的基本原理是服务器在请求完全接收后才会进行处理,如果客户端的发送速度缓慢或者发送不完整,服务端为其保留连接资源池占用,大量此类请求并发将导致DoS。
2527 0
|
9月前
|
SQL Web App开发 安全
SQL Server 2025年11月更新 - 修复 CVE-2025-59499 Microsoft SQL Server 特权提升漏洞
SQL Server 2025年11月更新 - 修复 CVE-2025-59499 Microsoft SQL Server 特权提升漏洞
621 0
SQL Server 2025年11月更新 - 修复 CVE-2025-59499 Microsoft SQL Server 特权提升漏洞
|
存储 监控 安全
Zabbix登录绕过漏洞复现(CVE-2022-23131)
最近在复现zabbix的漏洞(CVE-2022-23131),偶然间拿到了国外某公司zabbix服务器。Zabbix Sia Zabbix是拉脱维亚Zabbix SIA(Zabbix Sia)公司的一套开源的监控系统。该系统支持网络监控、服务器监控、云监控和应用监控等。Zabbix Frontend 存在安全漏洞,该漏洞源于在启用 SAML SSO 身份验证(非默认)的情况下,恶意行为者可以修改会话数据,因为存储在会话中的用户登录未经过验证。 未经身份验证的恶意攻击者可能会利用此问题来提升权限并获得对 Zabbix 前端的管理员访问权限。
2374 0
Zabbix登录绕过漏洞复现(CVE-2022-23131)
支付宝提现方案
说明   首先使用支付宝接口实现提现功能,需要使用到【单笔转账到支付宝账户接口】   大家需要转变一个思路,单笔转账接口可以转账给个人支付宝账户,对于用户而言收到商家转账就是提现成功。所以我们可以针对这个接口来说,转账就是提现。
2207 12
|
缓存 Ubuntu 网络安全
docker pull失败:x509: certificate has expired or is not yet
遇到“x509: certificate has expired or is not yet valid”错误时,首要步骤是校正系统时间并确保Docker客户端是最新的。如果问题依旧,检查和更新证书或考虑使用镜像加速服务也是可行的解决方案。通过这些步骤,大多数与证书相关的 `docker pull`问题都能得到有效解决。
2284 0
|
JavaScript Java API