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

简介: 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)分离。这种架构使得应用程序的开发和维护更加清晰和高效。
  1. 灵活的请求处理机制
  • Struts 2 使用拦截器(Interceptor)链来处理用户请求。拦截器是一个独立的处理单元,可以在请求到达控制器之前或响应返回之前执行。开发者可以自定义和扩展拦截器以实现特定的需求。
  1. OGNL 表达式语言
  • Struts 2 使用 Object-Graph Navigation Language (OGNL) 作为默认的表达式语言。这使得开发者可以方便地访问和操作 Java 对象及其属性。
  1. 强大的表单处理和验证
  • Struts 2 提供了强大的表单处理和验证功能,支持多种数据验证方式。开发者可以通过 XML 配置或注解(Annotations)定义验证规则。
  1. 国际化支持
  • Struts 2 支持国际化(i18n),允许开发者轻松地创建多语言的应用程序。通过资源文件,可以将应用程序的文本内容翻译成不同的语言。
  1. 插件机制
  • Struts 2 具有丰富的插件机制,允许开发者扩展框架的功能。常用的插件包括 REST 插件、Spring 插件、JFreeChart 插件等。

核心组件

  1. Actions(动作类)
  • Action 是 Struts 2 的核心组件之一,用于处理用户请求。每个 Action 类对应一个用户请求,负责业务逻辑的处理,并返回一个结果视图(View)。
  1. Interceptors(拦截器)
  • 拦截器是处理请求的核心机制。它们可以在请求处理链中的不同阶段执行特定的任务,例如身份验证、日志记录、输入验证等。
  1. Result(结果)
  • Result 是 Action 执行完毕后返回的视图。它可以是 JSP 页面、模板文件、重定向 URL 等。开发者可以配置不同的 Result 类型来渲染响应。
  1. Configuration(配置)
  • Struts 2 的配置可以通过 XML 文件(如 struts.xml)或注解来完成。配置文件定义了 Action 类、拦截器、结果类型等信息。

优势和应用场景

  1. 易于开发和维护
  • Struts 2 的基于 MVC 的架构使得应用程序的开发和维护更加简便,特别适用于大型企业级应用的开发。
  1. 扩展性强
  • 插件和拦截器机制使得 Struts 2 具有高度的扩展性,开发者可以根据需求自定义功能模块。
  1. 社区支持
  • 作为 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 路径

复现完整的 URL 路径

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

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

相关文章
|
11月前
|
Web App开发 移动开发 安全
Struts2 S2-062 (CVE-2021-31805) 远程代码执行漏洞
Apache 官方发布了 Apache Struts2 的风险通告,漏洞编号为 CVE-2021-31805,可能会导致远程代码执行。
120 1
|
11月前
|
Web App开发 XML 安全
ZeroShell防火墙存在远程命令执行漏洞(CVE-2019-12725)
zeroshell防火墙存在远程命令执行漏洞,攻击者可通过特定URL链接对目标进行攻击!!!
261 1
|
7天前
|
安全 Java 网络安全
Apache Struts 2 2.3.14.3 远程代码执行(CVE-2013-2134)
Apache Struts 2 2.3.14.3 远程代码执行(CVE-2013-2134)
Apache Struts 2 2.3.14.3 远程代码执行(CVE-2013-2134)
|
1月前
|
自然语言处理 安全 网络安全
WBCE CMS v1.5.2 远程命令执行(CVE-2022-25099)
WBCE CMS v1.5.2 远程命令执行(CVE-2022-25099)
|
11月前
|
安全 Linux Windows
MS08-067 (CVE-2008-4250) 远程命令执行漏洞
本文为08年出现的漏洞进行复现,仅作为学习参考,切勿非法利用! MS08-067漏洞是通过MSRPC over SMB通道调用Server服务程序中的NetPathCanonicalize 函数时触发的,而NetPathCanonicalize 函数在远程访问其他主机时,会调用NetpwPathCanonicalize函数,对远程访问的路径进行规范化,而在NetpwPathCanonicalize函数中发生了栈缓冲区内存错误,造成可被利用实施远程代码执行。
170 1
|
安全 前端开发 Java
struts2-046 远程代码执行 (CVE-2017-5638)
struts2-046 远程代码执行 (CVE-2017-5638)
545 0
struts2-046 远程代码执行 (CVE-2017-5638)
|
安全 Shell 数据安全/隐私保护
Nexus远程命令执行CVE-1019
Nexus远程命令执行CVE-1019
Nexus远程命令执行CVE-1019
|
存储 编解码 安全
|
安全 Java 程序员
解决struts2远程执行漏洞问题升级至2.5.22版本步骤
🍅程序员小王的博客:程序员小王的博客 🍅 欢迎点赞 👍 收藏 ⭐留言 📝 🍅 如有编辑错误联系作者,如果有比较好的文章欢迎分享给我,我会取其精华去其糟粕
446 0
解决struts2远程执行漏洞问题升级至2.5.22版本步骤
|
安全 Linux API
Supervisord 远程命令执行漏洞(CVE-2017-11610)
Supervisord是一款Python开发,用于管理后台应用(服务)的工具,其角色类似于Linux自带的Systemd。
286 0
Supervisord 远程命令执行漏洞(CVE-2017-11610)