0


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

前言

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 年的老漏洞了,直接网上找工具

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

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

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

标签: struts web安全 安全

本文转载自: https://blog.csdn.net/2302_82189125/article/details/140165460
版权归原作者 Suc2es2 所有, 如有侵权,请联系我们删除。

“Struts 2.0.0 至 2.1.8.1 远程命令执行漏洞(CVE-2010-1870)”的评论:

还没有评论