千家信息网

如何进行Struts2 S2-057漏洞环境搭建及漏洞分析

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,本篇文章给大家分享的是有关如何进行Struts2 S2-057漏洞环境搭建及漏洞分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。漏洞原
千家信息网最后更新 2025年02月23日如何进行Struts2 S2-057漏洞环境搭建及漏洞分析

本篇文章给大家分享的是有关如何进行Struts2 S2-057漏洞环境搭建及漏洞分析,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

漏洞原因

官方对这次漏洞的描述是:
1.定义XML配置时如果namespace值未设置且上层动作配置(Action Configuration)中未设置或用通配符namespace时可能会导致远程代码执行。
2.url标签未设置value和action值且上层动作未设置或用通配符namespace时可能会导致远程代码执行。
具体分析可参考:
https://www.freebuf.com/vuls/182006.html

调试环境搭建

1)下载官方源码:
git clone https://github.com/apache/Struts.git
2)切换到2.5.12分支:
git checkout STRUTS_2_5_10
3) 把源码包中src/apps/showcase整个文件夹拷贝出来,新建一个项目
4)用IDEA或者eclipse导入该maven项目
5)修改src/main/resoureces中的配置文件struts-actionchaining.xml,改成:

        register2

访问http://localhost:8080/struts2-showcase/%24{1+2}/actionChain1.action

url重新redirect到:http://localhost:8080/struts2-showcase/3/register2.action
并对location中的1+2进行了计算,产生了ognl注入

漏洞分析

首先,strut2中对默认result对象的处理过程。这些默认result type都要经过 com/opensymphony/xwork2/DefaultActionInvocation.java处理

会调用这个具体result对象(redirectAction)的excute方法。
注意到struts-actionchaining.xml配置文件中,标签的type是redirectAction,所以对应地找出redirectAction的处理类:org.apache.struts2.result.ServletActionRedirectResult,并且在execute方法处下断点

发送请求:http://localhost:8080/struts2-showcase/%24{1+2}/actionChain1.action
程序跳到断点处,往下执行后,由于在配置xml时没有指定namespace,所以这里的namespace为null,则对namespace重新赋值为/${1+2}


最终将location设置为/${1+2}/register2.action

在 super.execute(invocation)处继续f5进入函数内,最终跟踪到StrutsResultSupport的execute方法

这边的location值为/${1+2}/register2.action,最终对ognl表达式执行后得到/3/register2.action

至此,ognl表达式成功执行。

防御

将框架版本升级到官方最新版本

以上就是如何进行Struts2 S2-057漏洞环境搭建及漏洞分析,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注行业资讯频道。

漏洞 配置 分析 漏洞分析 环境 官方 文件 方法 上层 代码 动作 对象 断点 更多 标签 源码 版本 知识 篇文章 表达式 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 信腾网络技术有限公司 湖北武百网络技术 网络安全责任法第42条 脑电波数据库的发展战略 电脑dns服务器怎么打开 idea内置的服务器 微信数据库顺坏 对手机软件开发有兴趣 数据库汇总查询实验报告总结心得 服务器内存条白黑绿顺序 内蒙古电子软件开发公司 信阳金蝶出纳软件开发 山东春考计算机网络技术本科学校 中国生物医学数据库检索 密云区技术软件开发怎么样 浦发银行互联网金融科技岗 服务器后台运行怎么设置 2020武汉找软件开发好难 服务器安全防护什么好 网络盒子输入ntp服务器 计算机网络技术只有毕业证 数据库手动建表自动增长 山东科技职业学院移动互联网 金蝶商贸版服务器可以多人安装吗 口碑好的网络技术咨询收费 青浦区网络技术服务质量保证 网络安全课后题简答题 可视化服务器的作用 我们要制定网络安全法 网络安全之大数据
0