1、S2-001
漏洞原因:该漏洞是因为用户提交表单数据并且验证失败时,后端会将用户之前提交的参数值使用 OGNL 表达式 %{value} 进行解析,然后重新填充到对应的表单数据中,例如在注册或登录页面,提交失败后后端一般会默认返回之前提交的数据,由于后端使用 %{value} 对提交的数据执行了一次 OGNL 表达式解析,所以可以直接构造 Payload 进行命令执行。
利用示例:在password地方输入%{1+1},点击登陆,发现报错返回解析成了2,证明漏洞存在,获取tomcat执行路径:%{"tomcatBinDir"{"+@java.lang.System@getProperty("user.dir")+"}"},获取Web路径:%{#req=@org.ap。
2、S2-004
漏洞原因:S2-004 是一个经典的远程代码执行(RCE)漏洞,攻击者可以通过精心构造的 HTTP 请求来执行任意代码。
影响版本:Apache Struts 2.3.x 系列版本中的多个版本都受到此漏洞的影响。
检测工具:Lucifer1993 编写的 struts-scan,可以用于检测 S2-004 漏洞。
3、S2-005
漏洞原因:S2-005 也是一个 RCE 漏洞,它允许攻击者通过发送特制的 HTTP 请求来执行任意代码。
影响版本:多个版本的 Apache Struts 2.3.x 系列受到影响。
检测工具:K8 团队的 K8_Struts2_EXP 工具可以用来检测 S2-005 漏洞。
4、S2-062 (CVE-2021-31805)
漏洞原因:该漏洞是由于 2020 年 S2-061(CVE-2020-17530)的不完整修复造成的,当开发人员使用了 %{…} 语法进行强制 OGNL 解析时,仍有一些特殊的 TAG 属性可被二次解析,攻击者可构造恶意的 OGNL 表达式触发漏洞,从而实现远程代码执行。
影响范围:受影响的版本为 2.0.0 <= Apache Struts2 <= 2.5.29。
Struts2 框架中的这些漏洞主要涉及远程代码执行(RCE),允许攻击者通过发送特制的 HTTP 请求来执行任意代码,这些漏洞影响了多个版本的 Struts2,因此建议相关系统管理员和开发人员定期检查并更新其 Struts2 版本,以确保系统安全。
本文来源于互联网,如若侵权,请联系管理员删除,本文链接:https://www.9969.net/59490.html