zoukankan      html  css  js  c++  java
  • Tomcat文件包含漏洞的搭建与复现:CVE-2020-1938

    Tomcat文件包含漏洞的搭建与复现:CVE-2020-1938

    漏洞描述

    2020年2月20日,国家信息安全漏洞共享平台(CNVD)发布了Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)。该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp目录下的任意文件,如:webapp 配置文件或源代码等。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。目前,厂商已发布新版本完成漏洞修复。

    Apache Tomcat都是Apache开源组织开发的用于处理HTTP服务的免费项目,可以作为独立的Web服务器运行。Tomcat是Apache软件基金会中的一个重要项目,性能稳定且免费,是目前较为流行的Web应用服务器。由于Tomcat应用范围较广,所以本次通告的漏洞影响范围较大,请相关用户及时采取防护措施或者升级补丁修复此漏洞。

    影响范围

    受影响版本

    • Apache Tomcat 6
    • Apache Tomcat 7 < 7.0.100
    • Apache Tomcat 8 < 8.5.51
    • Apache Tomcat 9 < 9.0.31

    不受影响版本

    • Apache Tomcat = 7.0.100
    • Apache Tomcat = 8.5.51
    • Apache Tomcat = 9.0.31

    环境搭建

    准备工具

    漏洞利用

    首先成功搭建tomcat环境:

    本次漏洞利用的是AJP协议,该协议工作在8009端口,查看本机已开启:

    使用CNVD-2020-10487-Tomcat-Ajp-lfi-master的poc利用成功读取WEB-INF/web.xml文件:

    该POC读取目录为ROOT,其他目录不行:

    我们在目录下新建一个test.txt的文档,使用poc成功读取


    上面脚本只支持python2,我们使用AJPy-master的poc同样成功,这个脚本还能对tomcat进行暴力破解,文件上传等

    可以修改--webapp=manager来指定查看webapp目录下的子目录中文件

    漏洞防护

    官方升级

    目前官方已在最新版本中修复了该漏洞,请受影响的用户尽快升级版本进行防护,官方下载链接:

    版本号 下载地址
    Apache Tomcat 7.0.100 http://tomcat.apache.org/download-70.cgi
    Apache Tomcat 8.5.51 http://tomcat.apache.org/download-80.cgi
    Apache Tomcat 9.0.31 http://tomcat.apache.org/download-90.cgi

    其他安全防护措施

    如果相关用户暂时无法进行版本升级,可根据自身情况采用下列防护措施。

    关闭AJP

    如若用不到Tomcat AJP协议,可直接关闭AJP Connector,或将其监听地址改为仅监听本机localhost。

    具体操作如下

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

    <Connectorport=”8009″protocol=”AJP/1.3″ redirectPort=”8443″/>
    

    b. 然后将其注释掉或者删掉, (以下为注释的方式):

    <!–<Connectorport=”8009″protocol=”AJP/1.3″redirectPort=”8443″ />–>
    

    c. 保存后重新启动Tomcat,即可生效.

    添加认证凭证

    如若需要使用AJP协议,可根据当前版本配置协议属性设置认证凭证,主要使用配置AJP配置中的secretRequired跟secret属性来限制认证。

    具体操作如下

    使用Tomcat 7和Tomcat 9的用户可为AJP Connector配置secret来设置AJP协议的认证凭证。例如(注意必须将YOURTOMCATAJP_SECRET更改为一个安全性高、无法被轻易猜解的值):

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

    使用Tomcat 8的用户可为AJP Connector配置requiredSecret来设置AJP协议的认证凭证。例如(注意必须将YOURTOMCATAJP_SECRET更改为一个安全性高、无法被轻易猜解的值):

    <Connectorport="8009" protocol="AJP/1.3" redirectPort="8443" address="YOUR_TOMCAT_IP_ADDRESS" requiredSecret="YOUR_TOMCAT_AJP_SECRET"/> 
    
    
  • 相关阅读:
    zepto引用touch模块后,click失效
    cocos2dx中setContentSize与setDimensions在设置label显示区域上的区别
    convertToNodeSpace 与 convertToWorldSpace 的使用
    quick(3.2) UIListView扩展
    quick-cocos2d-x 游戏开发——StateMachine 状态机
    Lua学习笔记之字符串及模式匹配
    cocos2dx-3.x事件分发机制
    cocos2dx-Lua与Object的通讯机制
    cocos2dx-Lua与Java通讯机制
    Quick-cocos2dx容器层的使用
  • 原文地址:https://www.cnblogs.com/liliyuanshangcao/p/13039382.html
Copyright © 2011-2022 走看看