Warning: Undefined array key "night" in /www/wwwroot/dhaomu.com/wp-content/themes/b2/header.php on line 18

最新漏洞 | Struts(S2-048)远程命令执行漏洞分析

【摘要】一、漏洞分析1.1漏洞背景Apache的Struts2是一个优雅的,可扩展的开源MVC框架,主要用于创建企业级的JavaWeb应用程序。在Struts2.3.X系列的Showcase插件中演示Struts2整合Struts1的插件中存在一处任意代码执行漏洞。当...

一、漏洞分析

1.1漏洞背景

Apache的Struts2是一个优雅的,可扩展的开源MVC框架,主要用于创建企业级的Java Web应用程序。在Struts 2.3.X系列的Showcase插件中演示Struts2整合Struts 1的插件中存在一处任意代码执行漏洞。当你的Web应用使用了 Struts 2 Struts 1插件, 则可能导致Struts2执行由外部输入的恶意攻击代码。

1.2漏洞影响

Apache Struts 2.3.x系列中启用了struts2-struts1-plugin插件的版本

二、漏洞复现

这里我们测试的是2.3.24版本中的showcase演示演示示例

下载struts-2.3.24-apps.zip,解压当中的showcase 的war包到tomcat下

最新漏洞 | Struts(S2-048)远程命令执行漏洞分析插图

漏洞示例触发位置在SaveGangsterAction.java中

最新漏洞 | Struts(S2-048)远程命令执行漏洞分析插图1

找到itegration中的struts1 intergeration

最新漏洞 | Struts(S2-048)远程命令执行漏洞分析插图2

打开后演示如下:

最新漏洞 | Struts(S2-048)远程命令执行漏洞分析插图3

随便填完submit然后抓包

最新漏洞 | Struts(S2-048)远程命令执行漏洞分析插图4

修改 content-type,poc还是利用的OGNL,跟之前的s2-045和s2-046差不多

最新漏洞 | Struts(S2-048)远程命令执行漏洞分析插图5

可以看到成功执行了whoami命令 获得了system权限

三. 漏洞分析

3.1漏洞条件

漏洞是在struts2中开启了struts1的插件,org.apache.struts2.s1.Struts1Action类是把封装了struts1的Action 以便兼容在struts2中。

3.2漏洞触发点

漏洞出在org.apache.struts2.s1.Struts1Action类的execute方法中,

最新漏洞 | Struts(S2-048)远程命令执行漏洞分析插图6

首先这里ActionForward forward = action.execute(mapping, actionForm, request, response);会把表单的请求处理回显给客户端

然后addActionMessage(getText(msg.getKey(), Arrays.asList(msg.getValues())));这里又调用了getText方法 会把action messages传递给com.opensymphony.xwork2.util.LocalizedTextUtil.getDefaultMessage ,

最后在其中又调用了com.opensymphony.xwork2.util.TextParseUtil.translateVariables,它用来调用OGNL 表达式用处理字符串表达式。漏洞利用OGNL表达式执行任意命令。

四、 修复建议

4.0影响版本

Apache Struts 2.3.x系列中启用了struts2-struts1-plugin插件的版本

4.1漏洞检测 (检测是否存在漏洞的方法)

检查Struts2框架的版本号

4.2补丁地址

暂无补丁,请升级到最新版Struts2

4.3手工修复

4.3.1不启用struts2-struts1-plugin插件

4.3.2建议升级到最新版本2.5.10.1

4.3.3开发者通过使用resource keys替代将原始消息直接传递给ActionMessage的方式。 如下所示

messages.add(“msg”, new ActionMessage(“struts1.gangsterAdded”, gform.getName()));

一定不要使用如下的方式

messages.add(“msg”, new ActionMessage(“Gangster ” + gform.getName() + ” was added”));

温馨提示:
1.本站大部分内容均收集于网络!若内容若侵犯到您的权益,请发送邮件至:duhaomu@163.com,我们将第一时间处理!
2.资源所需价格并非资源售卖价格,是收集、整理、编辑详情以及本站运营的适当补贴,并且本站不提供任何免费技术支持。
3.所有资源仅限于参考和学习,版权归原作者所有,更多请阅读网站声明

给TA赞赏
共{{data.count}}人
人已赞赏
未整理

【投资技巧】定投十年赚十倍

2021-5-13 0:00:00

未整理

易优cms蓝色平面设计广告印刷网站模板源码 带手机版

2021-5-15 0:00:00

0 条回复 A文章作者 M管理员

Warning: Trying to access array offset on value of type null in /www/wwwroot/dhaomu.com/wp-content/themes/b2/functions.php on line 3914

Warning: Trying to access array offset on value of type null in /www/wwwroot/dhaomu.com/wp-content/themes/b2/functions.php on line 3914
----《》
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索