Struts2 s2-059,CVE-2019-0230漏洞验证 – 作者:thinkoaa

1. 环境搭建

Struts-2.3.37+apache-tomcat-8.5.34

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

2. 验证过程

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

图片[1]-Struts2 s2-059,CVE-2019-0230漏洞验证 – 作者:thinkoaa-安全小百科

图片[2]-Struts2 s2-059,CVE-2019-0230漏洞验证 – 作者:thinkoaa-安全小百科

2.2 结果如图

传入普通文本:

图片[3]-Struts2 s2-059,CVE-2019-0230漏洞验证 – 作者:thinkoaa-安全小百科传入ognl表达式%{9*9},需要url转码:

图片[4]-Struts2 s2-059,CVE-2019-0230漏洞验证 – 作者:thinkoaa-安全小百科

此处以<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表达式注入保护措施

5. 总结

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

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

来源:freebuf.com 2020-08-15 19:10:54 by: thinkoaa

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

请登录后发表评论