0x00背景介绍
2020年02月20日,于CNVD公开的漏洞公告中发现Apache Tomcat文件包含漏洞(CVE-2020-1938)。
Apache Tomcat为Apache开源组织开发的用于处理HTTP服务的项目。Apache Tomcat服务器中被发现存在文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件。
Apache Tomcat在国内用户众多,该漏洞具有较大威胁。风险探知系统对我国境内部署的Apache Tomcat服务器进行了抽样统计,结果显示我国境内暴露在互联网中的ApacheTomcat服务器有66多万台。按区域统计来看,排名前三的省份是广东省123117台,浙江省118376台,北京市116538台。
图1 全国区域分布
下图为中国范围内部署Apache Tomcat服务器数量排名前五省份或地区:
0x01漏洞描述
本次漏洞是一个单独的文件包含漏洞,该漏洞依赖于Tomcat的AJP(定向包协议)协议。AJP协议自身存在一定的缺陷,导致存在可控参数,通过可控参数可以导致文件包含漏洞。AJP协议使用率约为7.8%,鉴于Tomcat作为中间件被大范围部署在服务器上,本次漏洞危害较大。
0x02漏洞编号
CVE-2020-1938
0x03漏洞等级
高危
0x04受影响版本
Tomcat 6.*
Tomcat 7.* < 7.0.100
Tomcat 8.* < 8.5.51
Tomcat 9.* < 9.0.31
0x05修复建议
1.建议受影响的Tomcat用户尽快根据官方漏洞修复方案升级到最新版本进行漏洞修复。同时为AJP Connector配置secret来设置AJP协议的认证凭证。例如如下配置:
<Connector port=”8009″protocol=”AJP/1.3″ redirectPort=”8443″address=”YOUR_TOMCAT_IP_ADDRESS” secret=”YOUR_TOMCAT_AJP_SECRET”/>
最新版本链接:
http://tomcat.apache.org/download-70.cgi
http://tomcat.apache.org/download-80.cgi
http://tomcat.apache.org/download-90.cgi
2.如果用户无法进行版本升级且不需要使用Tomcat AJP协议,可直接关闭AJP Connector,或将其监听地址改为仅监听本地。
具体操作:
(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)保存后需重新启动,规则方可生效。
3.无法立即进行版本更新且需要使用Tomcat AJP协议。建议为AJPConnector配置requiredSecret来设置AJP协议认证凭证。例如如下配置:
<Connector port=”8009″protocol=”AJP/1.3″ redirectPort=”8443″address=”YOUR_TOMCAT_IP_ADDRESS”requiredSecret=”YOUR_TOMCAT_AJP_SECRET” />