简介
Apache Struts2的Jakarta Multipart parser插件存在远程代码执行漏洞,漏洞编号为CNNVD-201703-152。攻击者可以在使用该插件上传文件时,修改HTTP请求头中的Content-Type值来触发该漏洞,导致远程执行代码。
简单的重复造了一个轮子,网上很多工具都是有后门的 :)
影响版本:Struts 2.3.5 - Struts 2.3.31,Struts 2.5 - Struts 2.5.10
仅供学习测试使用,严禁非法操作!
下载地址:s2-045.zip
修复建议:
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);
}
}
最靠谱的办法就是升级,升级升级。