Struts 2.0.0 至 2.1.8.1 远程命令执行漏洞(CVE-2010-1870)

news2024/9/28 13:21:38

前言

CVE-2010-1870 是一个存在于 Apache Struts 2 中的漏洞,特别是在 Struts 2 动作框架中。这个安全缺陷允许远程攻击者通过操纵动态方法调用(DMI)功能在服务器上执行任意代码。当 DMI 功能启用时,框架可以接受和处理来自用户输入的方法名称。这可以通过发送包含恶意方法名称的特制请求来利用,从而导致任意代码执行。

影响版本

该漏洞影响 Apache Struts 版本 2.1.0 至 2.2.1.1。

漏洞利用

攻击者可以通过构造包含恶意表达式的请求来利用此漏洞,这些表达式包含在动作参数中,服务器会对其进行评估并执行。具体而言,当 Struts 2 的配置允许动态方法调用时,恶意用户可以通过在 URL 中指定方法名称来执行任意代码。这可能导致远程代码执行(RCE),并且攻击者能够完全控制受影响的服务器。

缓解措施

为了解决此问题,建议采取以下措施:

  1. 禁用 DMI 功能:在 struts.xml 配置文件中禁用动态方法调用功能。
  2. 升级 Apache Struts:升级到已修复此漏洞的更高版本的 Apache Struts。

春秋云镜靶场是一个专注于网络安全培训和实战演练的平台,旨在通过模拟真实的网络环境和攻击场景,提升用户的网络安全防护能力和实战技能。这个平台主要提供以下功能和特点:

实战演练:

提供各种网络安全攻防演练场景,模拟真实的网络攻击事件,帮助用户在实际操作中掌握网络安全技术。
场景涵盖Web安全、系统安全、网络安全、社工攻击等多个领域。

漏洞复现:

用户可以通过平台对已知的安全漏洞进行复现,了解漏洞的产生原因、利用方法和修复措施。
通过实战操作,帮助用户掌握漏洞利用和防护的技能。

教学培训:

提供系统化的网络安全课程,从基础到高级,覆盖多个安全领域,适合不同水平的用户。
包含理论讲解和实战操作,帮助学员全面提升网络安全知识和实战能力。

竞赛与评测:

定期举办网络安全竞赛,如CTF(Capture The Flag)比赛,激发学员的学习兴趣和动力。
提供个人和团队的安全能力评测,帮助学员了解自己的安全技能水平。

资源共享:

平台提供丰富的学习资源,包括教程、工具、案例分析等,方便用户随时查阅和学习。
用户可以在社区中分享经验和资源,互相交流和学习。

春秋云镜靶场适合网络安全从业人员、学生以及对网络安全感兴趣的个人,通过在平台上进行不断的学习和实战演练,可以有效提升网络安全技能和防护能力。

介绍

Apache Struts 2 是一个开源的 Java Web 应用程序框架,用于开发基于 MVC(Model-View-Controller)架构的现代化应用程序。它是 Apache Software Foundation 下的一个项目,并在开发社区中广泛使用。以下是对 Apache Struts 2 的详细介绍:

主要特性

  1. 基于 MVC 架构

    • Struts 2 实现了经典的 MVC 设计模式,将应用程序的业务逻辑(Model)、用户界面(View)和用户输入(Controller)分离。这种架构使得应用程序的开发和维护更加清晰和高效。
  2. 灵活的请求处理机制

    • Struts 2 使用拦截器(Interceptor)链来处理用户请求。拦截器是一个独立的处理单元,可以在请求到达控制器之前或响应返回之前执行。开发者可以自定义和扩展拦截器以实现特定的需求。
  3. OGNL 表达式语言

    • Struts 2 使用 Object-Graph Navigation Language (OGNL) 作为默认的表达式语言。这使得开发者可以方便地访问和操作 Java 对象及其属性。
  4. 强大的表单处理和验证

    • Struts 2 提供了强大的表单处理和验证功能,支持多种数据验证方式。开发者可以通过 XML 配置或注解(Annotations)定义验证规则。
  5. 国际化支持

    • Struts 2 支持国际化(i18n),允许开发者轻松地创建多语言的应用程序。通过资源文件,可以将应用程序的文本内容翻译成不同的语言。
  6. 插件机制

    • Struts 2 具有丰富的插件机制,允许开发者扩展框架的功能。常用的插件包括 REST 插件、Spring 插件、JFreeChart 插件等。

核心组件

  1. Actions(动作类)

    • Action 是 Struts 2 的核心组件之一,用于处理用户请求。每个 Action 类对应一个用户请求,负责业务逻辑的处理,并返回一个结果视图(View)。
  2. Interceptors(拦截器)

    • 拦截器是处理请求的核心机制。它们可以在请求处理链中的不同阶段执行特定的任务,例如身份验证、日志记录、输入验证等。
  3. Result(结果)

    • Result 是 Action 执行完毕后返回的视图。它可以是 JSP 页面、模板文件、重定向 URL 等。开发者可以配置不同的 Result 类型来渲染响应。
  4. Configuration(配置)

    • Struts 2 的配置可以通过 XML 文件(如 struts.xml)或注解来完成。配置文件定义了 Action 类、拦截器、结果类型等信息。

优势和应用场景

  1. 易于开发和维护

    • Struts 2 的基于 MVC 的架构使得应用程序的开发和维护更加简便,特别适用于大型企业级应用的开发。
  2. 扩展性强

    • 插件和拦截器机制使得 Struts 2 具有高度的扩展性,开发者可以根据需求自定义功能模块。
  3. 社区支持

    • 作为 Apache 基金会的项目,Struts 2 拥有庞大的用户社区和丰富的文档资源,开发者可以方便地找到支持和帮助。

典型应用

Struts 2 广泛应用于企业级 Web 应用程序的开发中,例如:

  • 电子商务平台
  • 内容管理系统(CMS)
  • 客户关系管理系统(CRM)
  • 在线教育平台

总结

Apache Struts 2 是一个功能强大且灵活的 Java Web 应用框架,适用于各种复杂的 Web 应用程序开发。通过其 MVC 架构、丰富的插件和强大的配置功能,Struts 2 为开发者提供了一个高效的开发平台。

漏洞复现

打开靶场

靶场页面有一个选择语言的功能 

因为是 2010 年的老漏洞了,直接网上找工具

链接icon-default.png?t=N7T8https://pan.baidu.com/s/17-0ggQirbDyWaD8jSzW_vg?pwd=6666复现完整的 URL 路径 

使用工具获取信息(能否利用漏洞) 

接下来就是执行命令拿到 flag

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1919710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

交叉熵损失函数的使用目的(很肤浅的理解)

第一种使用方法 import torch from torch import nn # Example of target with class indices loss nn.CrossEntropyLoss() input torch.randn(3, 5, requires_gradTrue) target torch.empty(3, dtypetorch.long).random_(5) output loss(input, target) output.backward(…

初识c++(类与对象——上)

一、类的定义 1、类定义格式 • class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省 略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量; 类中的函数称为类的方法或 者成员函…

内存巨头SK海力士正深化与TSMC/NVIDIA合作关系,开发下一代HBM

据BusinessKorea报道,内存巨头SK海力士正深化与台积电(TSMC)及英伟达(NVIDIA)的合作关系,并计划在9月的台湾半导体展(Semicon Taiwan)上宣布更紧密的伙伴关系。 SK海力士与台积电的合作历史已久。2022年,台积电在其北美技术研讨会上宣布成立O…

docker-2

27.构建python应用镜像-dockerfile实践项目 1.基于官方的镜像,构建python代码运行环境 dockerfile 2.运行镜像,开启一个读写的容器空间(定制操作,将代码丢进去,运行调试) 3.提交这个变化的容器层数据&#…

打工人小强向老板提了2次异地组网方案全被否!直言不想干了!

前几天有宝友在微信群咨询组网问题,非常具有代表性。关于组网方案问题,在此小宝给大家分享一下。 情况是这样的: 运维小伙小强,就职互联网行业,目前维护3个分公司网络,分别是: 1、北京&#…

Android数据库基础

目录 1、安卓数据存储方式 2、数据库事务 数据库事务的特性(ACID) 事务的隔离级别 事务总结 3、ContetProvider 作用 ​编辑 统一资源标识符URI ​编辑 MIME类型 ContentProvider主要方法 4、ContentResolver 作用 主要方法 使用案例 辅助工具类 ContentUris Uri…

element plus 实现跨页面+跨tab栏多选

文章目录 element plus 层面数据层面 菜鸟好久没写博客了,主要是没遇见什么很难的问题,今天碰见了一个没有思路的问题,解决后立马来和大家伙分享了! 菜鸟今天要实现一个需求,就是:实现跨页面跨 tab栏 多选…

【RHCE】综合实验0710综合实验

题目: 主服务器192.168.244.130 防火墙允许服务的放行: selinux放行 [rootlocalhost ~]# ll -Z /nfs/rhce 总用量 4 -rw-r--r--. 1 root root unconfined_u:object_r:default_t:s0 8 7月 10 16:52 index.html -rw-r--r--. 1 nobody nobody system_…

Vue2打包部署后动态修改后端接口地址的解决方法

文章目录 前言一、背景二、解决方法1.在public文件夹下创建config文件夹,并创建config.js文件2.编写config.js内容3.在index.html中加载config.js4.在封装axios工具类的js中修改配置 总结 前言 本篇文章将介绍使用Vue2开发前后端分离项目时,前端打包部署…

分布式应用系统设计:即时消息系统

即时消息(IM)系统,涉及:站内消息系统 组件如下; 客户端: WEB页面,IM桌面客户端。通过WebSocket 跟ChatService后端服务连接 Chat Service: 提供WebSocket接口,并保持跟“客户端”状态的维护。…

ArrayList----源码分析

源码中的简介: List接口的可调整数组实现。实现所有可选列表操作,并允许所有元素,包括null。除了实现List接口之外,这个类还提供了一些方法来操作内部用于存储列表的数组的大小。(这个类大致相当于Vector,只是它是不同…

Web知识库应用程序LibreKB

什么是 LibreKB ? LibreKB 是一款知识库 Web 应用程序。免费、开源、自托管,基于 PHP/MySQL。 官方并没有 Docker 镜像,老苏这次图省事,并没有像往常一样构建一个镜像,而是基于 Docker 搭建了一个 LAMP 环境&#xff0…

ServiceDesk Plus再次获得国际认可的粉象认证

我们又一次做到了!ServiceDesk Plus 现已获得 CMDB 和发布部署过程的 PinkVERIFY™ (粉象)认证。 通过PinkVerify 认证,我们现在已经获得了七项核心 IT 服务管理实践: 1、事件管理 2、问题管理 3、变更管理 4、资产管…

dev小熊猫,clion设置模版教程

首先点击工具 然后进入设置 ,找到代码模版 然后点击c模版,进入之后直接输入模版之后,(还没有结束!!!),先点击应用,然后是确定!!&#…

maven6——生命周期与插件

生命周期 生命周期:指运行的阶段(比如几岁) maven有三个生命周期如下,每个生命周期大概做的事情如下: 注意:每次执行某个,他会把上面的都执行一遍 插件: 每一个插件&#xf…

【SQL】DML、DDL、ROLLBACK 、COMMIT详解

DML DML(Data Manipulation Language)数据操作语言,是用于对数据库中的数据进行基本操作的一种编程语言。DML是数据库管理系统(DBMS)中的一个重要部分,它允许用户或应用程序对数据库中的数据进行增、删、改…

Pytorch张量

在conda的环境中安装Jupyter及其他软件包 Pytorch 建立在张量(tensor)之上,Pytorch张量是一个 n 维数组,类似于 NumPy 数组。专门针对GPU设计,可以运行在GPU上以加快计算效率。换句话说,Pytorch张量是可以运…

WebGIS基础原理

该部分内容与部分插图、学习框架的主要参考的网站与博主如下(也趁机分享给大家): OSGeo开源WebGIS在线教程:http://webgis.cn/ OSGeo《地理信息系统原理》:https://www.osgeo.cn/gis-tutorial/index.html OSGeo《Pyth…

30.ROM-IP核的调用

(1)ROM IP核简介: ROM是只读存储器,是一种只能读出事先锁存的固态半导体存储器。其特性是一旦存储资料就无法再将之改变或删除,并且资料也不会因为电源关闭而消失。(掉电不丢失) FPGA使用内部RA…

鸿蒙语言基础类库:【@ohos.util.HashMap (非线性容器HashMap)】

非线性容器HashMap 说明: 本模块首批接口从API version 8开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。开发前请熟悉鸿蒙开发指导文档:gitee.com/li-shizhen-skin/harmony-os/blob/master/README.md点击或者复制转到。 H…