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表达式注入保护措施
5. 总结
如果表达式中的值可被攻击者控制,攻击者可以通过传入危险的OGNL表达式实现远程代码执行,不过该漏洞利用条件过于苛刻,危害为高危,但实际操作起来不容易造成大规模利用。
针对较新的版本,还没有太好的bypass方式,框架本身也会过滤掉敏感操作,此漏洞利用条件苛刻,无法大规模利用,及时安装软件更新即可,或按照官方说的修改配置。
来源:freebuf.com 2020-08-15 19:10:54 by: thinkoaa
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
喜欢就支持一下吧
请登录后发表评论
注册