Adminxe's Blog | 低调求发展 - 潜心习安全 ,技术永无止境 | 谢谢您对本站的支持,有什么问题或者建议请及时联系:点击这里给我发消息

CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现

漏洞复现 Adminxe 2729℃ 0评论

前言

  Apache Tomcat会开启AJP连接器,方便与其他Web服务器通过AJP协议进行交互。由于Tomcat本身也内含了HTTP服务器,因此也可以视作单独的Web服务器。此漏洞为文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件、源代码等。

去edusrc看了一眼,刷的有点眼晕,评分降低到了2rank高危洞,刷的好猛呀!这边呢,随手也测试了一下,暂时直接实战给大家看一下“文件读取”,可以直接读取到敏感信息文件,比如数据库配置信息文件,下面先贴张图稳稳军心。

编号

CNVD-2020-10487

CVE-2020-1938

影响

        Apache Tomcat = 6

        7 <= Apache Tomcat <7.0.100

        8 <= Apache Tomcat <8.5.51

        9 <= Apache Tomcat <9.0.31

复现过程

我这里是使用docker 拉取 tomcat-8.5.32 环境复现的

docker搜索tomcat镜像

docker search tomcat-8.5.32

拉取镜像

docker pull duonghuuphuc/tomcat-8.5.32

拉取完成后查看是否拉取成功 

docker images

运行镜像并映射端口

docker run -d -p 8080:8080 -p 8090:8090 duonghuuphuc/tomcat-8.5.32

并查看是否运行成功

docker ps -a

成功后访问系统地址

nmap 一下试试

至此环境搭建成功

exp1

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

exp2

https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi

漏洞演示

修复方案

  • 临时禁用AJP协议端口,在conf/server.xm l配置文件中注释掉<Connector port=”8009″ protocol=”AJP/1.3″redirectPort=”8443″ />
  • 配置ajp配置中的secretRequired跟secret属性来限制认证
  • 官方下载最新版下载地址:
https://tomcat.apache.org/download-70.cgi
https://tomcat.apache.org/download-80.cgi
https://tomcat.apache.org/download-90.cgi
https://github.com/apache/tomcat/releases

其他防护措施

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

一、若不需要使用Tomcat AJP协议,可直接关闭AJP Connector,或将其监听地址改为仅监听本机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)保存后需重新启动Tomcat,规则方可生效。

二、若需使用Tomcat AJP协议,可根据使用版本配置协议属性设置认证凭证。

使用Tomcat 7和Tomcat 9的用户可为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”/>

使用Tomcat 8的用户可为AJP Connector配置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” />

转载请注明:Adminxe's Blog » CVE-2020-1938 Apache-Tomcat-Ajp漏洞复现

喜欢 (19)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
(1)个小伙伴在吐槽
  1. ajp设置了requiredSecret和secret之后,apache ajp代理之后就无法访问了,这个如何解决?
    落叶2020-02-22 11:10 回复