Struts 漏洞,我们如何确保企业应用程序的安全?

Struts 漏洞主要涉及一系列已披露的远程代码执行(RCE)安全缺陷,影响使用该框架的Web应用程序,这些漏洞允许攻击者远程执行恶意代码,获取敏感数据或完全控制受影响的系统,详细探讨如下:

1、S2-005 漏洞

Struts 漏洞,我们如何确保企业应用程序的安全?插图1
(图片来源网络,侵删)

漏洞原理:S2-005 是继承自 S2-003 的漏洞,它使得Struts 2会将HTTP请求中的参数名解析为OGNL语句执行,尽管Struts框架试图通过过滤#字符来防止安全问题,但攻击者仍可以通过Unicode编码(如u0023)或8进制编码(如43)绕过这一限制。

受影响版本:该漏洞影响所有低于2.0.12版本的Struts 2。

2、S2-062 漏洞

漏洞原理:由于之前S2-061漏洞的不完整修复,导致了S2-062的出现,开发人员使用的%{…}语法进行强制OGNL解析时,可能使应用程序对外开放了执行远程代码的风险。

影响范围:这个漏洞同样允许攻击者控制受影响的系统,并可潜在地影响那些已经应用了S2-061补丁但未完全修复的系统。

Struts 漏洞,我们如何确保企业应用程序的安全?插图3
(图片来源网络,侵删)

3、历史漏洞经验

漏洞:历史漏洞经验表明,Struts2的多数漏洞都与OGNL表达式解析有关,这些表达式被解析成各种抽象语法树(AST),从而导致远程代码执行,这为绕过安全限制提供了多种思路,且与抽象语法树(AST)的解析后续逻辑密切相关。

4、复现合集

漏洞复现:华云安发布了一份包含17个Struts2漏洞复现方法的合集,S2-001是个典型例子,用户提交表单数据验证失败后,后端错误地将参数值作为OGNL表达式执行,导致攻击者可以构造恶意payload执行命令。

影响版本:在S2-001中,受影响的版本是Struts 2.0.0至2.0.8。

Struts 漏洞,我们如何确保企业应用程序的安全?插图5
(图片来源网络,侵删)

对于防范措施,建议采取以下步骤:

1、及时更新:持续关注Apache Struts的官方公告,确保立即应用最新的安全补丁。

2、深入分析:对历史漏洞进行复盘,理解每个漏洞的原理,以便更好地防范未来可能出现的类似问题。

3、安全工具:利用安全扫描工具检测潜在的漏洞,确保系统的安全配置。

归纳而言,Apache Struts的多个历史漏洞突显了Web应用程序中使用的框架代码如果存在缺陷,可能会给整个系统带来严重的安全威胁,了解和应对这些漏洞,需要结合技术分析和适当的安全防护措施,针对Struts框架,维护人员应定期审查和更新系统,以防止已知漏洞被利用,开发团队应深化对OGNL表达式及其安全影响的理解,加强代码审查和安全教育,以提升整体的应用安全性。

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

(0)
上一篇 2024年9月3日 23:03
下一篇 2024年9月3日 23:14

相关推荐