博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
技术分析 | Struts2 S2-048漏洞:跟踪攻击趋势,成功检测防御
阅读量:6434 次
发布时间:2019-06-23

本文共 1294 字,大约阅读时间需要 4 分钟。

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对该漏洞进行防御。

转载地址:http://tlaga.baihongyu.com/

你可能感兴趣的文章
Ansible的介绍、安装、配置及常用模块介绍
查看>>
编码列表
查看>>
eigrp 配置
查看>>
谈一谈 redis 集群
查看>>
concurrent包
查看>>
分区和格式化硬盘
查看>>
在Linux下调试Python代码的各种方法
查看>>
centos7塔建MQ服务器
查看>>
Peer authentication failed for user
查看>>
超强的.NET图像工具包VintaSoftImaging.NET SDK更新至v8.6丨75折优惠
查看>>
阿里云上Kubernetes集群联邦
查看>>
我的Git忽略文件
查看>>
洛谷2219:[HAOI2007]修筑绿化带——题解
查看>>
监控webservice信息
查看>>
a标签中href=""的几种用法(转)
查看>>
python
查看>>
ubuntu 常用生产环境部署配置测试调优
查看>>
【JS】//将中文逗号转换为英文逗号
查看>>
在VS2012中实现Ext JS的智能提示太简单了
查看>>
Extnet Direct 提交后台事件文件下载设置
查看>>