谷兰科技威胁提醒:
3月7日,国家信息安全漏洞共享平台(CNVD)收录并披露了Apache Struts2 S2-045远程代码执行漏洞(CNVD-2017-02474,对应CVE-2017-5638),远程攻击者利用该漏洞可直接取得网站服务器控制权。截止发稿,互联网上已经出现多个利用该漏洞的POC。 |
谷兰科技产品状态:
谷兰科技全线产品未采用Struts2框架,产品安全性不受该漏洞影响。建议用户巡检网络内采用Apache Struts2框架的设备,及时修补相应漏洞。 |
关于Struts2漏洞的具体信息及修补方案
漏洞详情
漏洞编号:S2-045
CVE编号:CVE-2017-5638
漏洞类型:远程代码执行
漏洞级别:高危
漏洞风险:黑客通过利用漏洞可以实现远程命令执行。
影响版本:struts2.3.5–
struts2.3.31 , struts2.5–struts2.5.10。
漏洞描述:攻击者可在上传文件时通过修改HTTP请求头中的Content-Type值来触发该漏洞,进而执行系统命令。
漏洞分析
漏洞存在的文件:
1. \core\src\main\java\org\apache\struts2\dispatcher\multipart\MultiPartRequestWrapper.java
2. \core\src\main\java\org\apache\struts2\dispatcher\multipart\JakartaMultiPartRequest.java
3. \core\src\main\java\org\apache\struts2\dispatcher\multipart\JakartaStreamMultiPartRequest.java
修复方法:
if (LocalizedTextUtil.findText(this.getClass(), errorKey, defaultLocale, null, new Object[0]) == null) {
return LocalizedTextUtil.findText(this.getClass(), "struts.messages.error.uploading", defaultLocale, null, new
Object[] { e.getMessage() });
} else {
return LocalizedTextUtil.findText(this.getClass(), errorKey, defaultLocale, null, args);
}
漏洞利用条件:
1.基于Jakarta(Jakarta
Multipart parser)插件的文件上传功能
2.恶意攻击者构造Content-Type的值
修复建议:
1.修复Jakarta文件上传插件或者是存在漏洞的Struts 2版本请升级至Struts2安全版本
2.通过Servlet过滤器验证Content-Type值
3.添加waf规则进行拦截恶意攻击