`
bnmnba
  • 浏览: 292841 次
  • 性别: Icon_minigender_1
社区版块
存档分类
最新评论

漏洞:不安全的http请求方法,tomcat 禁用http method。代码解决

 
阅读更多

问题描述:通过fiddler,使用raw重现HTTP请求,修改GET为TRACE重新请求。tomcat返回405,head 包含

Allow:POST,GET,DELETE,OPTIONS,PUT,HEAD

解决方法:使用filter进行过滤和处理。

1.修改tomcat的server.xml,允许trace方法:<Connector allowTrace="true"

 

2.修改web.xml,添加filter

  <filter>
    <filter-name>filterUtil</filter-name>
    <filter-class>com.utils.FilterUtil</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>filterUtil</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

 

 

3.添加filter类

package com.utils;

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.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

public class FilterUtil implements Filter {
	Logger log=LoggerFactory.getLogger(this.getClass());
	
	@Override
	public void destroy() {
		
	}

	@Override
	public void doFilter(ServletRequest arg0, ServletResponse arg1, FilterChain arg2)
			throws IOException, ServletException {
	    HttpServletRequest request = (HttpServletRequest) arg0;
	    HttpServletResponse response = ((HttpServletResponse) arg1); 
		String m=request.getMethod();
		if(!"GET".equals(m)&&!"POST".equals(m)){
			System.out.println("GET or POST only  ");
			response.setHeader("Allow", "GET,POST");
			response.setStatus(405);
			return;
		}
		arg2.doFilter(arg0, arg1);
	}

	@Override
	public void init(FilterConfig arg0) throws ServletException {
	}
	
}

 按错误的method请求即可看到效果:

 

  • 大小: 7.8 KB
分享到:
评论

相关推荐

    关于HTTP协议禁用不常用方法漏洞的解决方案.docx

    ### 关于HTTP协议禁用不常用方法漏洞的解决方案 #### 漏洞概述 在网络通信中,HTTP(超文本传输协议)是客户端与服务器之间进行数据交换的主要方式之一。HTTP定义了一系列请求方法来规范交互过程,包括但不限于GET...

    不安全的http方法、CSRF等漏洞修复问题

    不安全的 HTTP 方法、CSRF 等漏洞修复问题 在本文中,我们将讨论不安全的 HTTP 方法、CSRF 漏洞等问题的修复方法。 一、敏感信息泄露 敏感信息泄露是指攻击者可以通过访问网站目录直接下载文件,进入别的网页,...

    各中间件禁用不安全的HTTP方法

    **Internet Information Services (IIS)**是微软提供的Web服务器解决方案,同样可以通过配置来禁用不安全的HTTP方法。 1. **禁用WebDAV**:如果服务器不需要支持WebDAV功能,可以直接禁用该服务。对于IIS 7及更高...

    tomcat中间件禁用webdav方法

    tomcat中间件禁用webdav方法 通过本方法,可以完成所有运行于该tomcat之上的java项目均拦截webdav方法。

    tomcat禁用RC4的方法

    禁用RC4(SSL/TLS 受诫礼(BAR-MITZVAH)攻击漏洞(CVE-2015-2808)【原理扫描】) 编缉$CATALINA_HOEM/conf/server.xml配置文件,找到https端口配置处,修改如下: 复制代码 ...

    tomcat打补丁方法

    3. **浏览补丁列表**:在上述页面中,你可以找到针对不同版本的Tomcat所发布的安全补丁列表及其详细信息,包括发布日期、影响范围、解决的问题等。 4. **下载补丁文件**:点击具体的补丁名称或版本号链接,进入补丁...

    Tomcat-8.5.28 无漏洞

    在本文中,我们将深入探讨Tomcat 8.5.28这一特定版本,以及它如何修复了一个安全限制绕过漏洞。 标题中的"Tomcat-8.5.28 无漏洞"意味着该版本已经对已知的安全问题进行了修补,确保了用户的服务器不会受到这些漏洞...

    tomcat禁止PUT等方法

    然而,在某些情况下,我们可能需要禁止 Tomcat 上的某些 HTTP 方法,例如 PUT、DELETE、HEAD、OPTIONS 和 TRACE 方法,以确保应用程序的安全性。 在本文中,我们将讨论如何禁止 Tomcat 上的 PUT 等方法,以防止未经...

    web安全—tomcat禁用WebDAV或者禁止不需要的 HTTP 方法

    因此,在不需要WebDAV功能或者希望增强服务器安全性的情况下,应该考虑禁用这些不必要的HTTP方法。 对于Tomcat服务器,禁用WebDAV或特定HTTP方法可以通过修改应用程序的`web.xml`配置文件来实现。以下是具体步骤: ...

    java代码启动tomcat

    Java 代码启动 Tomcat 在 Java 中,使用 Tomcat 服务器来发布 Web 应用程序是一种常见的做法。下面,我们将详细介绍如何使用 Java 代码来启动 Tomcat 服务器,并实现远程控制 Tomcat。 标题: Java 代码启动 ...

    tomcat处理一个http请求的详细过程

    tomcat中server配置文件的结构,以及处理一个http请求的全过程

    网站常见漏洞及解决办法

    ### 网站常见漏洞及解决办法 ...总之,针对网站常见的安全漏洞,除了采用上述具体的解决方案外,还应保持良好的安全实践,包括但不限于定期更新软件、使用强密码策略、加密敏感数据传输等,以降低遭受攻击的风险。

    tomcat远程代码执行漏洞验证

    在正常情况下,Apache Tomcat的设计不允许通过PUT方法上传JSP文件,这是一种安全措施,旨在阻止潜在的攻击者上传包含恶意代码的JSP文件并执行远程代码。然而,在7.0.0到7.0.79版本中,存在一个设计缺陷,即对上传...

    关于Tomcat的AJP端口禁用.docx

    总之,禁用Tomcat的AJP端口是加强服务器安全的重要步骤,尤其是在不使用AJP通信或存在安全顾虑时。通过以上方法,您可以根据实际需求选择合适的方式来禁用或限制AJP服务,从而提高系统的整体安全性。

    tomcat远程命令攻击的漏洞与利用

    该漏洞允许攻击者通过精心构造的HTTP PUT请求上传任意文件至Tomcat服务器,进而执行服务器端代码。 #### 实验目的 本实验旨在通过模拟攻击过程,帮助读者理解CVE-2017-12615漏洞的具体机制及其潜在危害。通过实践...

    apache-tomcat-8.5.51.tar.gz(官方宣布最新无漏洞版本)

    2020 年 2 月 4 日,Apache Tomcat 官方发布了新的版本,该版本修复了一 个影响所有版本(7.*、8.*、9.*)的文件包含漏洞,但官方暂未发布安全公告 2020 年 2 月 20 日,CNVD 发布了漏洞公告,对应漏洞编号:CNVD-...

    Tomcat常见的错误代码

    - **解决**: 确认请求方法是否正确,如资源仅支持GET,则不能使用POST方法访问。 **9. 406 Not Acceptable** - **场景**: 服务器找到了资源,但内容类型不被客户端接受。 - **解决**: 检查`Accept`头部中的内容类型...

    Apache tomcat远程代码执行验证代码

    这个标题和描述提到了"Apache Tomcat远程代码执行验证代码",这通常涉及到一个安全漏洞,允许攻击者通过发送特定的HTTP请求在服务器上执行任意代码。 远程代码执行(RCE)是一种严重的安全风险,它允许攻击者在目标...

Global site tag (gtag.js) - Google Analytics