Apache Tomcat服务器存在文件包含漏洞(CVE-2020-1938)

Apache Tomcat服务器存在文件包含漏洞,攻击者可利用该漏洞读取或包含 Tomcat 上所有 webapp 目录下的任意文件,如:webapp 配置文件或源代码等

该漏洞影响的Tomcat版本如下

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

漏洞原因:

Tomcat默认的conf/server.xml中配置了2个Connector,一个为8080的对外提供的HTTP协议端口,另外一个就是默认的8009 AJP协议端口,如下图所示,两个端口默认均监听在外网ip

tomcat在接收ajp请求的时候调用org.apache.coyote.ajp.AjpProcessor来处理ajp消息,prepareRequest将ajp里面的内容取出来设置成request对象的Attribute属性。可以通过此种特性从而可以控制request对象的下面三个Attribute属性

javax.servlet.include.request_uri

javax.servlet.include.path_info

javax.servlet.include.servlet_path

再通过控制ajp控制的上述三个属性来读取文件,通过操控上述三个属性从而可以读取到应用目录下的任何文件。

 漏洞修复:

1、Apache官方已发布9.0.31、8.5.51及7.0.100版本针对此漏洞进行修复,建议用户下载使用:

Apache Downloads

Apache Tomcat® - Apache Tomcat 8 Software Downloads

Apache Tomcat® - Apache Tomcat 9 Software Downloads

Releases · apache/tomcat · GitHub

2、使用AJP协议的临时处置方法:为AJP Connector配置secret来设置 AJP 协议的认证凭证,且注意口令强度

3、未使用AJP协议的临时处置方法:禁用AJP协议端口,在conf/server.xml配置文件中注释,并重启Tomcat服务

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

下载官方发布的修复漏洞的版本,查看其配置文件(/conf/server.xml),发现官方默认已经把AJP Connector个注释了,如需要用到,自己打开注释。

并按官方要求,监听地址改为仅监听本机localhost,添加secret凭证(建议设置一个安全性高、无法被轻易猜解的值

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

 总结:如果条件允许,建议升级tomcat版本,如果不方便更换,先将ajp监听注释,重启服务器即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值