打赏

解决tomcat CNTA-2020-0004漏洞

@参考文章

攻击者利用该漏洞,可在未授权的情况下远程读取特定目录下的任意文件

漏洞影响的产品版本包括:

Tomcat 6

Tomcat 7

Tomcat 8

Tomcat 9 <9.31版本的

这个漏洞主要是tomcat ajp协议引起的。这个协议负责和其他的HTTP服务器建立连接。在把Tomcat与其他HTTP服务器集成时,就需要用到这个连接器。AJP连接器可以通过AJP协议和一个web容器进行交互。

@参考文章

 

1.   如未使用Tomcat AJP协议:

如未使用 Tomcat AJP 协议,可以直接将 Tomcat 升级到 9.0.31及更新版本进行漏洞修复(因为低版本的还有很多其他漏洞,不建议再用了)。

如无法立即进行版本更新、或者是更老版本的用户,建议直接关闭AJPConnector,或将其监听地址改为仅监听本机localhost。

具体操作:

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

<!-- Define an AJP 1.3 Connector on port 8009 -->
        <Connector port="8009" protocol="AJP/1.3" redirectPort="8443"/>

(2)将此行注释掉(也可删掉该行):

<!--<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />-->

(3)保存后需重新启动,规则方可生效。

2.   如果使用了Tomcat AJP协议:

建议将Tomcat立即升级到9.0.319.0.31及更新版本进行修复,同时为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"/>

如无法立即进行版本更新、或者是更老版本的用户,建议为AJPConnector配置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" />

附:第二种方法需加address,否则检测的时候可能还是会提示不安全

示例:

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="::1"/>

<Connector port="8009" protocol="AJP/1.3" redirectPort="8443" address="::1" secretRequired="true" secret="zyn"/>

 

posted @ 2020-03-27 10:41  每天都要学一点  阅读(732)  评论(0编辑  收藏  举报