这篇文章给大家介绍如何进行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官方代码为例,稍作修改
2.2 结果如图
传入普通文本:
传入ognl表达式%{9*9},需要url转码:
此处以<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