这个漏洞触发可以不需要有上传功能,但是一定要有commons-fileupload-x。x。x。jar包
修复建议:1。很官方的解释 升级struts2版本
2。做过滤器
获取Content-Type的值,如果包含了某些特征进行过滤pass(治标不治本,有被绕过的可能) //当时写的也被证实了,确实存在绕过S2-046,所以大家尽量升级。
类似:(网上随意找,仅供参考思路)
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response,FilterChain chain) throws ServletException, IOException {
String contentType=request。getContentType();
if(contentType!=null&&contentType。indexOf("ognl")!=-1){ //特征字符
System。out。println(contentType);
return;
}else{
chain。doFilter(request, response);
}
}
近日,安恒信息安全研究院WEBIN实验室高级安全研究员nike。zheng发现著名J2EE框架——Struts2存在远程代码执行的严重漏洞。s2-045代码执行漏洞分析s2-045
目前Struts2官方已经确认漏洞(漏洞编号S2-045,CVE编号:cve-2017-5638),并定级为高风险。由于该漏洞影响范围极广(Struts 2。3。5 - Struts 2。3。31, Struts 2。5 - Struts 2。5。10),漏洞危害程度极为严重,可直接获取应用系统所在服务器的控制权限。论文网
该漏洞影响范围极广,影响国内外绝大多数使用Struts2开发框架的站点。建议提前做好该严重漏洞的应急准备工作。受影响的软件版本:Struts 2。3。5 - Struts 2。3。31, Struts 2。5 - Struts 2。5。10,该漏洞危害程度极高,黑客可以利用该漏洞通过浏览器在远程服务器上执行任意系统命令,将会对受影响站点造成严重影响,引发数据泄露、网页篡改、后门植入、沦为肉鸡等安全事件。
漏洞修复建议(或缓解措施):
检测方式查看web目录下/WEB-INF/lib/目录下的struts-core。x。x。jar ,如果这个版本在Struts2。3。5 到 Struts2。3。31 以及 Struts2。5 到 Struts2。5。10之间则存在漏洞,
更行至Strusts2。3。32或者Strusts2。5。10。1,或使用第三方的防护设备进行防护。s2-045代码执行漏洞分析s2-045
临时解决方案:删除commons-fileupload-x。x。x。jar文件(会造成上传功能不可用)。