Struts 2 远程代码执行漏洞加固方法
来源:互联网 发布:小米电视怎么样 知乎 编辑:程序博客网 时间:2024/06/08 12:39
加固方式如下:
通过判断Content-Type头是否为白名单类型,来限制非法Content-Type的攻击。
加固代码:
import java.io.IOException;import javax.servlet.Filter;import javax.servlet.FilterChain;import javax.servlet.FilterConfig;import javax.servlet.ServletException;import javax.servlet.ServletRequest;import javax.servlet.ServletResponse;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse; public class SecurityFilter extends HttpServlet implements Filter { /** * */ private static final long serialVersionUID = 1L; public final String www_url_encode= "application/x-www-form-urlencoded"; public final String mul_data= "multipart/form-data "; public final String txt_pla= "text/plain"; public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2) throws IOException, ServletException { HttpServletRequest request = (HttpServletRequest) arg0; HttpServletResponse response = (HttpServletResponse) arg1; String contenType=request.getHeader("conTent-type"); if(contenType!=null&&!contenType.equals("")&&!contenType.equalsIgnoreCase(www_url_encode)&&!contenType.equalsIgnoreCase(mul_data)&&!contenType.equalsIgnoreCase(txt_pla)){ response.setContentType("text/html;charset=UTF-8"); response.getWriter().write("非法请求Content-Type!"); return; } arg2.doFilter(request, response); } public void init(FilterConfig arg0) throws ServletException { } }
1. 将Java编译以后的“SecurityFilter.class”(SecurityFilter.java是源代码文件)复制到应用的WEB-INF/classes目录下。
2. 配置Filter
将下面的代码加入WEB-INF/web.xml文件中。
<filter> <filter-name>SecurityFilter</filter-name> <filter-class>SecurityFilter</filter-class> </filter><filter-mapping> <filter-name>SecurityFilter</filter-name> <url-pattern>/*</url-pattern></filter-mapping>
/*代表拦截所有请求,进行攻击代码检查,*.action只检查.action结尾的请求。
示例:
3. 重启应用即可
阅读全文
0 0
- Struts 2 远程代码执行漏洞加固方法
- Struts 2 S2-045 Jakarta插件远程代码执行漏洞加固方法
- Struts 2最新0day破坏性漏洞(远程任意代码执行)等的重现方法
- Struts 2最新0day破坏性漏洞(远程任意代码执行)等的重现方法
- Struts 2 远程代码执行漏洞(CVE-2016-0785)解决方案
- Struts S2-016 远程任意命令执行漏洞检测代码
- JBOSS远程代码执行漏洞
- JBOSS远程代码执行漏洞
- JBOSS远程代码执行漏洞
- Struts2远程代码执行漏洞
- JBOSS远程代码执行漏洞
- Struts2远程代码执行漏洞
- Activemq远程代码执行漏洞
- Struts 2命令执行漏洞
- Struts 2命令执行漏洞
- 迅雷ActiveX控件远程代码执行漏洞
- IE "ReleaseInterface()"远程代码执行漏洞
- php cgi-wrap远程代码执行漏洞
- git error 解决方案
- Mysql index使用事项
- String、StringBuilder、StringBuffer的区别
- hadoop namenode深度剖析
- JavaScript中append()和innerHTML的一点自己见解
- Struts 2 远程代码执行漏洞加固方法
- ant+jmeter接口测试
- cobol连接数据库
- camera2 opengl实现滤镜效果录制视频 四 录像
- Hdu 5782 Cycle(拓展KMP+Hash)
- 关于虚拟机与宿主机之间的网络连接问题
- tomcat的server.xml配置文件中三个端口的作用
- Excel导入异常:Cannot get a text value from a numeric cell
- 如何设置winscp显示隐藏文件