一 漏洞概述
1.1简介
Apache Struts 是一个免费的开源 MVC 框架,用于创建优雅,现代的 Java Web 应用程序。 它支持约定优于配置,可使用插件体系结构进行扩展,并附带插件以支持 REST,AJAX 和 JSON。
2018 年 8 月 22 日,Apache Strust2 发布最新安全公告,Apache Struts2 存在远程代码执行的高危漏洞,该漏洞由 Semmle Security Research team 的安全研究员 Man YueMo 汇报,漏洞编号为 CVE-2018-11776(S2-057)。Struts2 在 XML 配置中如果namespace 值未设置且(Action Configuration)中未设置或用通配符 namespace 时可能会导致远程代码执行,当 url 标签未设置 value 和 action 值且上层动作未设置或用通配符 namespace 时也可能会导致远程代码执行。
1.2漏洞危害
当定义XML配置时,如果namespace值未设置且上层动作配置(Action Configuration)中未设置或用通配符namespace时,可能会导致远程代码执行;当url标签未设置value和action值且上层动作未设置或用通配符namespace时,可能会导致远程代码执行。
1.3 影响版本
二 漏洞复现
2.1复现环境
2.2环境搭建
1. 下载 Struts 2.5.16 官方示例 showcase
2. 修改 struts-actionchaining.xml,将 namespace 删除,将 result 类型改为 redirectAction
3. 重启 tomcat
2.3复现结果及过程
访问以下链接
http://localhost:8080/struts2-showcase/${100*100}/actionChain1.action
会执行 Ognl 表达式 ${100*100}
从图中可以看到,表达式执行成功了,并且结果展现在跳转的 url 中。
三 影响范围
根据 ZoomEye 网络空间搜索引擎对 Apache Struts2 的搜索结果,共找到 111,294,519 条历史记录。
三 修复建议
1.目前官方已发布补丁,用户可升级至版本2.3.35或2.5.17。
2.若暂时不想更新,可暂时使用官方提供的临时解决方案:当上层动作配置中未设置或使用通配符 namespace 时,验证所有 XML 配置中的 namespace,同时在 JSP 中验证所有 url 标签的 value 和 action。
3.技术业务咨询:
知道创宇技术业务咨询热线:400-060-9587(政府、国有企业)
028-68360638(互联网企业)
2020年09月17日,IBM发布安全公告,WebSphere Application Server中存在一个安全漏洞,该漏洞是由于WebSphere Application Server在处理XML数据时容易受到XML外部实体注入(XXE)攻击。
2020年9月22日,FastAdmin远程代码执行漏洞细节曝光,黑客登录前台会员中心,即可远程GetShell,风险极大。
2020年9月17日,VMware发布安全公告,在Spring Framework版本5.2.0-5.2.8、5.1.0-5.1.17、5.0.0-5.0.18、4.3.0-4.3.28和较旧的不受支持的版本中,发现了一个存在于Spring Framework中的反射型文件下载(Reflected File Download,RFD)漏洞(CVE-2020-5421)。
获取安全动态