快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

如何进行Struts2-057远程代码执行漏洞复现

这篇文章跟大家分析一下“如何进行Struts2-057远程代码执行漏洞复现”。内容详细易懂,对“如何进行Struts2-057远程代码执行漏洞复现”感兴趣的朋友可以跟着小编的思路慢慢深入来阅读一下,希望阅读后能够对大家有所帮助。下面跟着小编一起深入学习“如何进行Struts2-057远程代码执行漏洞复现”的知识吧。

专注于为中小企业提供成都网站建设、网站设计服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业兴平免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了千余家企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

0x00简介

Apache Struts是美国阿帕奇(Apache)软件基金会负责维护的一个开源项目Struts2框架是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了Java Servlet API,鼓励开发者采用MVC架构。Struts2以WebWork优秀的设计思想为核心,吸收了Struts框架的部分优点,提供了一个更加整洁的MVC设计模式实现的Web应用程序框架。

如何进行Struts2-057远程代码执行漏洞复现

0x01漏洞概述

漏洞产生于网站配置XML时如果没有设置namespace的值,并且上层动作配置中并没有设置或使用通配符namespace时,可能会导致远程代码执行漏洞的发生。同样也可能因为url标签没有设置value和action的值,并且上层动作并没有设置或使用通配符namespace,从而导致远程代码执行漏洞的发生。

0x02影响版本

Apache Struts 2.3–Struts 2.3.34

Apache Struts 2.5–Struts 2.5.16

0x03环境搭建

1. 这里使用vulhub的docker环境进行搭建,vulhub下载地址:

https://github.com/vulhub/vulhub

如何进行Struts2-057远程代码执行漏洞复现

2. 下载完成后安装docker-compose //安装方法自行搜索,安装完成后进入vulhub cd /home/demo/vulhub-master/struts2/s2-057/目录下使用

docker-compose up -d 拉取镜像

如何进行Struts2-057远程代码执行漏洞复现

3.底下显示done表示拉取成功,在浏览器访问http://IP:8080/struts2-showcase可以看到Struts2测试页面表示搭建成功。

如何进行Struts2-057远程代码执行漏洞复现

4.漏洞利用条件

4.1 alwaysSelectFullNamespace被设置为true,此时namespace的值是从URL中获取的。URL是可控的,所以namespace也是可控的。

4.2 action元素没有名称空间属性集,或者使用通配符。该名称空间将由用户从URL传递并解析为OGNL表达式,最终导致远程代码执行的脆弱性。

0x04漏洞复现

1.在url处输入http://IP:8080/struts2-showcase/${(123+123)}/actionChain1.action后刷新可以看到中间数字位置相加了。

如何进行Struts2-057远程代码执行漏洞复现

如何进行Struts2-057远程代码执行漏洞复现

2.修改中间${(123+123)}位置的payload替换用代码执行编写成命令执行的exp,这一步使用burp抓包修改可以直观的看到结果

Payload: //注:payload需要使用url编码

如何进行Struts2-057远程代码执行漏洞复现

3.抓包发送到Repeater(重放)模块,在url加上url编码的paylaod,然后发送即可在头部看到回显结果

如何进行Struts2-057远程代码执行漏洞复现

如何进行Struts2-057远程代码执行漏洞复现

如何进行Struts2-057远程代码执行漏洞复现

0x05修复建议

1. 临时解决方案:上层动作配置中没有设置或使用通配符namespace时,验证所有XML配置中的namespace,同时在JSP中验证所有url标签的value和action。

2. 官方已发布最新版本来修复此漏洞,受影响的用户请尽快升级到Apache Struts 2.3.35 或 Struts 2.5.17版

关于如何进行Struts2-057远程代码执行漏洞复现就分享到这里啦,希望上述内容能够让大家有所提升。如果想要学习更多知识,请大家多多留意小编的更新。谢谢大家关注一下创新互联网站!


当前文章:如何进行Struts2-057远程代码执行漏洞复现
网页路径:http://6mz.cn/article/jcedec.html

其他资讯