vlambda博客
学习文章列表

​Tomcat的文件包含漏洞(CVE-2020-1938)

 

漏洞介绍

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

漏洞影响范围

该漏洞在Tomcat7Tomcat9的许多版本中存在。

受影响版本

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默认的conf/server.xml中配置了2Connector,一个为8080的对外提供的HTTP协议端口,另外一个就是默认的8009 AJP协议端口,两个端口默认均监听在外网ip。如下方图片所示。

 

​Tomcat的文件包含漏洞(CVE-2020-1938)

​Tomcat的文件包含漏洞(CVE-2020-1938)


 

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

javax.servlet.include.request_uri

javax.servlet.include.path_info

javax.servlet.include.servlet_path

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

漏洞修复建议

1.官方升级
2.如果不使用AJP协议,可直接关闭AJP Connector,或将其监听地址改为仅监听本机localhost
3.若需使用Tomcat AJP协议,可根据使用版本配置协议属性设置认证凭证。
 
另外,针对受漏洞影响的不同Tomcat版本:
1.  使用 Tomcat 7 Tomcat 9 的用户可为 AJP Connector 配置 secret 来设置 AJP 协议的认证凭证。

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

address="YOUR_TOMCAT_IP_ADDRESS"

secret="YOUR_TOMCAT_AJP_SECRET"

/>

2. 使用Tomcat 8的用户可为AJP Connector配置requiredSecret来设置AJP协议的认证凭证。

 

<Connector port="8009" protocol="AJP/1.3"

redirectPort="8443" address="YOUR_TOMCAT_IP_ADDRESS"

requiredSecret="YOUR_TOMCAT_AJP_SECRET"

/>

其中,上述两种情况下都必须将YOUR_TOMCAT_AJP_SECRET更改为一个安全性高、无法被轻易猜解的值。

转载于CSDN,详情请点击阅读原文

​Tomcat的文件包含漏洞(CVE-2020-1938)



​Tomcat的文件包含漏洞(CVE-2020-1938)


中电运行是专业专注培养能源企业IT工匠和提供IT整体解决方案的服务商,也是能源互联网安全专家。


​Tomcat的文件包含漏洞(CVE-2020-1938)

​Tomcat的文件包含漏洞(CVE-2020-1938)