美文网首页随笔
Apache Tomcat 服务器禁用非安全的HTTP方法(PU

Apache Tomcat 服务器禁用非安全的HTTP方法(PU

作者: 红树_ | 来源:发表于2024-01-17 16:23 被阅读0次

渗透测试发现 WebDAV 的远程代码执行漏洞,主要是服务器未禁止除 get 和 post 以外的 HTTP 方法,如 PUT 、DELETE、OPTIONS 方法等。 如下所示:


对于 Tomcat 8 服务器,解决方法是在项目的web.xml中添加安全访问策略。为方便拷贝,代码如下:

    <!-- 禁用非安全方法 加上auth-constraint验证 -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>NoAccess</web-resource-name>
            <url-pattern>/*</url-pattern>
            <http-method>PUT</http-method>
            <http-method>DELETE</http-method>
            <http-method>HEAD</http-method>
            <http-method>OPTIONS</http-method>
            <http-method>TRACE</http-method>
        </web-resource-collection>
        <auth-constraint/>
    </security-constraint>

    <!-- GET/POST 不需auth-constraint 此段可去掉 -->
    <security-constraint>
        <web-resource-collection>
            <web-resource-name>AllowedMethods</web-resource-name>
            <url-pattern>/*</url-pattern>
            <http-method>GET</http-method>
            <http-method>POST</http-method>
        </web-resource-collection>
    </security-constraint>
  
    <login-config>
        <auth-method>BASIC</auth-method>
    </login-config>
  • security-constraint 限制对指定资源的访问。
  • web-resource-collection 指定资源集合,可定义 URL 或 HTTP 方法,若不指定HTTP方法则应用于所有HTTP方法。
  • web-resource-name 资源名称,随意取。
  • http-method 指定一个HTTP方法。
  • auth-constraint 指定可以访问该资源集合的用户角色,若未指定则所有角色都不可访问。
  • role-name 指定角色名称。
  • user-data-constraint 配置如何保护在客户端和Web容器之间传递的数据。
  • transport-guarantee 需指定以下三个之一:
    NONE,不需要传输保证。
    INTEGRAL,服务器和客户端之间的数据必须以某种方式发送,而且在传送中不能改变。
    CONFIDENTIAL,传输的数据必须是加密的数据。
    一般安全套接字层(SSL)用于INTEGRAL或CONFIDENTIAL。
  • login-config 指定验证方法、领域名和表单验证机制所需的特性。
    BASIC(基本验证):通过HTTP验证,需要提供base64编码文本的用户口令。
    DIGEST(摘要验证):通过HTTP验证,需要提供摘要编码字符串的用户口令。
    FORM(表单验证):在网页的表单上要求提供密码。
    CLIENT-CERT(客户端证书验证):以客户端证书来确认用户的身份。

通过security-constraint和login-config配合实现禁用。配置在应用的web.xml中只针对该应用,配置在tomcat下的web.xml应用于所有应用。

tip:在server.xml中,还需要把Connector 的allowTrace属性设为"true" ,来允许支持trace方法再通过上面配置才能关闭 trace 方法,allowTrace的默认值是 false

扩展:HTTP1.0 定义了三种请求方法: GET, POST 和 HEAD 方法。HTTP1.1 新增了六种请求方法:OPTIONS、PUT、PATCH、DELETE、TRACE 和 CONNECT 方法。

  • GET 请求指定的页面信息,并返回实体主体。
  • HEAD 类似于 GET 请求,只不过返回的响应中没有具体的内容,用于获取报头
  • POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST 请求可能会导致新的资源的建立和/或已有资源的修改。
  • PUT 从客户端向服务器传送的数据取代指定的文档的内容。
  • DELETE 请求服务器删除指定的页面。
  • CONNECT HTTP/1.1 协议中预留给能够将连接改为管道方式的代理服务器。
  • OPTIONS 允许客户端查看服务器的性能。
  • TRACE 回显服务器收到的请求,主要用于测试或诊断。
  • PATCH 是对 PUT 方法的补充,用来对已知资源进行局部更新 。

相关文章

  • Tomcat安装详解

    安装Tomcat服务器 下载 官网地址:http://tomcat.apache.org[http://tomca...

  • 搭载版本升级服务器

    搭载版本升级服务器步骤: 1、从apache官网下载Tomcat版本http://tomcat.apache.or...

  • TOMACAT服务器的安装和配置

    **一, Tomcat服务器的下载地址(Apache Tomcat的官网): **http://tomcat.ap...

  • [Java] Mac下安装tomcat关联eclipse

    一.安装tomcat step 1 下载tomcat服务器无脑点开http://tomcat.apache.org...

  • apache nginx tomcat iis 禁用OPTION

    一、Apache使用Apache的重写规则来禁用Options方法和Trace方法 在Apache配置文件http...

  • Tomcat 部署项目的三种方法

    转自:YSOcean 1、下载 Tomcat 服务器 ①、官网下载地址:http://tomcat.apache....

  • Tomcat

    Apache-Tomcat 关系 web服务器工作原理 Tomcat Web 3大件 Tomcat 处理 http...

  • Tomcat

    tomcat下载:http://tomcat.apache.org/[http://tomcat.apache.o...

  • Tomcat部署

    Tomcat:web服务器软件下载:http://tomcat.apache.org/安装:解压压缩包即可。注意:...

  • Tomcat

    http://tomcat.apache.org/[http://tomcat.apache.org/] 目录结构...

网友评论

    本文标题:Apache Tomcat 服务器禁用非安全的HTTP方法(PU

    本文链接:https://www.haomeiwen.com/subject/jholodtx.html