• Tomcat AJP 文件包含漏洞(CVE-2020-1938)漏洞复现


    漏洞简介

    该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行

    影响范围

    Apache Tomcat 6

    Apache Tomcat 7 < 7.0.100

    Apache Tomcat 8 < 8.5.51

    Apache Tomcat 9 < 9.0.31

    漏洞验证

    对目标主机进行端口扫描

    可以看到8009端口是打开的,运行AJP服务

    进一步使用poc验证,读取web.xml

    地址 https://github.com/0nise/CVE-2020-1938

    命令 python tomcat.py read_file --webapp=ROOT/ /WEB-INF/classes/application.yml 127.0.0.1

     修复方案

    1)如未使用Tomcat AJP协议:

    如未使用 Tomcat AJP 协议,可以直接将 Tomcat 升级到 9.0.31、8.5.51或 7.0.100 版本进行漏洞修复。

    如无法立即进行版本更新、或者是更老版本的用户,建议直接关闭AJPConnector,或将其监听地址改为仅监听本机localhost。

    具体操作:

    (1)编辑 <CATALINA_BASE>/conf/server.xml,找到如下行(<CATALINA_BASE> 为 Tomcat 的工作目录):

    <Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />

    (2)将此行注释掉(也可删掉该行):

    <!--<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />-->

    (3)保存后需重新启动,规则方可生效。

    2)如果使用了Tomcat AJP协议:

    建议将Tomcat立即升级到9.0.31、8.5.51或7.0.100版本进行修复,同时为AJP Connector配置secret来设置AJP协议的认证凭证。例如(注意必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被轻易猜解的值):

    <Connector port="8009"protocol="AJP/1.3" redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS" secret="YOUR_TOMCAT_AJP_SECRET"/>

    如无法立即进行版本更新、或者是更老版本的用户,建议为AJPConnector配置requiredSecret来设置AJP协议认证凭证。例如(注意必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被轻易猜解的值):

    <Connector port="8009"protocol="AJP/1.3" redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS"requiredSecret="YOUR_TOMCAT_AJP_SECRET" />

     

     

  • 相关阅读:
    C#使用进度条,并用线程模拟真实数据 ProgressBar用法(转)
    装饰者模式(Decorator Pattern)C#版本的
    C# Stream篇(七) -- NetworkStream
    C# Stream篇(六) -- BufferedStream
    C# Stream篇(五) -- MemoryStream
    C# Stream篇(四) -- FileStream
    C# Stream篇(三) -- TextWriter 和 StreamWriter
    C# Stream篇(二) -- TextReader 和StreamReader
    C# Stream篇(—) -- Stream基类
    代理模式(Proxy Pattern)C#版本的
  • 原文地址:https://www.cnblogs.com/canyezhizi/p/12706295.html
Copyright © 2020-2023  润新知