如何进行Struts2 s2-059 CVE-2019-0230漏洞验证

这篇文章给大家介绍如何进行Struts2 s2-059 CVE-2019-0230漏洞验证,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

1. 环境搭建

Struts-2.3.37+apache-tomcat-8.5.34

PS:漏洞影响范围:Apache Struts 2.0.0 – 2.5.20

2. 验证过程

2.1 以Struts官方代码为例,稍作修改

如何进行Struts2 s2-059 CVE-2019-0230漏洞验证

如何进行Struts2 s2-059 CVE-2019-0230漏洞验证

2.2 结果如图

传入普通文本:

如何进行Struts2 s2-059 CVE-2019-0230漏洞验证传入ognl表达式%{9*9},需要url转码:

如何进行Struts2 s2-059 CVE-2019-0230漏洞验证

此处以<s:a 标签的id值中插入ognl表达式为例,其他标签可能执行不成功。

3. 利用条件

漏洞利用前置条件,需要特定标签的相关属性存在表达式%{xxxxx},且xxxx可控并未做安全验证。

3.1 Struts2标签的属性值可执行OGNL表达式

3.2 Struts2标签的属性值可被外部输入修改

3.3 Struts2标签的属性值未经安全验证

4. 修复建议

4.1 升级到Struts 2.5.22或更高版本。

4.2 或者开启ONGL表达式注入保护措施

如果表达式中的值可被攻击者控制,攻击者可以通过传入危险的OGNL表达式实现远程代码执行,不过该漏洞利用条件过于苛刻,危害为高危,但实际操作起来不容易造成大规模利用。

针对较新的版本,还没有太好的bypass方式,框架本身也会过滤掉敏感操作,此漏洞利用条件苛刻,无法大规模利用,及时安装软件更新即可,或按照官方说的修改配置。

关于如何进行Struts2 s2-059 CVE-2019-0230漏洞验证就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/tech/safety/221998.html

(0)
上一篇 2022年1月4日 10:38
下一篇 2022年1月4日 10:38

相关推荐

发表回复

登录后才能评论