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漏洞验证

此处以

3. 利用条件

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

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

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

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

4. 修复建议

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

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

5. 总结

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

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论