• 关于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版本。

  • 相关阅读:
    347. 前 K 个高频元素(桶排序、堆排序)
    322. 零钱兑换 && 416. 分割等和子集(0-1背包问题)
    739. 每日温度 && 503. 下一个更大元素 II (单调栈)
    1110. 删点成林
    个人纪录
    pub get failed (server unavailable) -- attempting retry 1 in 1 second?
    python 遍历文件夹重命名
    flutter vscode 连接iphone失败
    部署以太坊合约
    Web漏洞扫描工具AppScan10介绍
  • 原文地址:https://www.cnblogs.com/chxmtl/p/12909555.html
Copyright © 2020-2023  润新知