zoukankan      html  css  js  c++  java
  • 关于tomcat不安全的http方法漏洞的处理方法

    网上处理方法基本千篇一律。就是在tomcat的web.xml或者工程目录下的web.xml下配置下面的代码。

    <security-constraint>
            <web-resource-collection>
                <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>
            </auth-constraint>
        </security-constraint>
        <login-config>
            <auth-method>BASIC</auth-method>
        </login-config>

    加过之后,使用curl -v -X OPTIONS http://你的地址,如果不出现下面的ALLOW,基本就OK了。

    或者将地址复制到火狐浏览器打开,然后点击按键F12,选择网络,随便选择一个响应,点击编辑和重发,将类型改为大写的OPTIONS,点击发送,然后再点这个请求看下,返回的响应头里没有ALLOW中的那些参数,基本就OK了。

     

    按照这种处理方法,屡试不爽,天有不测风云,某天某个项目按照这种方法处理漏洞后,并没有生效,研究了好几天,最终在百度的某个不知道第几页找到了一个相同的情况,并且对方给出初步解决方法

    查看工程目录下的web.xml

    看下是否有类似的error-page的配置,有的话注释掉就可以了,测试就能完美通过。

     上面这些error-page主要是为了在打开页面错误的情况下,掩饰所使用的tomcat版本号(然并卵,测试工具还是可以抓包分析到版本号),解决办法就是直接修改tomcat的lib目录下catalina.jar配置。

    在catalina.jar解压缩目录下orgapachecatalinautil 中的ServerInfo.properties

    #server.info=Apache Tomcat/7.0.103
    server.info=I won't tell you
    server.number=7.0.103.0
    server.built=Mar 16 2020 08:34:15 UTC

    同时在conf里的server.xml配置Connector中增加一个server参数,参数值自定义。

    <Connector port="9099" protocol="HTTP/1.1"
                   connectionTimeout="5000" server="ipi" 
                   redirectPort="8443" URIEncoding="UTF-8" />

    以上两步就可完美隐藏tomcat版本。

  • 相关阅读:
    webSQL 实现即时通讯
    微信开发(微信公众号)
    回顾 git 常用命令
    面向对象的 javascript
    关于HTML、js加密、混淆、源码保护、代码安全,防止解压直接看源码
    svn 的使用
    css新单位 vw , vh
    图片转成base64, base64转成图片
    EL表达式
    jsp页面获取集合的长度
  • 原文地址:https://www.cnblogs.com/chxmtl/p/12909555.html
Copyright © 2011-2022 走看看