【漏洞復現】Tomcat文件包含漏洞的搭建與復現:CVE-2020-1938

  • 2020 年 2 月 25 日
  • 筆記

點擊上方「公眾號」 可以訂閱哦!

Hello,各位小夥伴大家好~

今天打開手機就被Tomcat的這個漏洞刷屏了

估計昨晚很多大佬都在通宵刷SRC吧…

讓我們一起來複現一下這個漏洞吧~

Part.1

漏洞說明

漏洞描述

2月14日,Apache Tomcat官方發布了一個安全更新版本,用於修復Tomcat中存在的一個利用AJP協議的漏洞。利用該漏洞,攻擊者可以通過發送惡意的AJP請求,在未授權的情況下讀取或者包含webapp目錄下的任意文件。

2月20日,國家資訊安全漏洞共享平台(CNVD)發布安全公告,將該漏洞綜合評級為高危,當前網上已可以找到該漏洞的利用POC。

涉及版本

Apache Tomcat6

Apache Tomcat7 < 7.0.100

Apache Tomcat8 < 8.5.51

Apache Tomcat9 < 9.0.31

Part.2

環境搭建

JDK安裝

以Tomcat 8.0版本為例,需要安裝JDK1.7及以上版本。公眾號回復1938可進行下載。

Tomcat 8.0.39

Tomcat8.0.39可在公眾號回復1938可進行下載。也可訪問官網自行下載:

http://tomcat.apache.org/download-80.cgi

選擇對應的版本:

點擊後進入bin命令下載我們需要的版本:

下載完成後解壓即可:

環境變數

配置環境變數:

新建系統變數CATALINA_HOME,變數值為tomcat路徑:

配置環境系統變數Path,添加變數值:%CATALINA_HOME%lib;

打開bin目錄下的startup即可啟動:

啟動後訪問目標8080埠:

搭建成功~

Part.3

漏洞復現

漏洞復現

本次漏洞利用的是AJP協議,該協議工作在8009埠,查看本機已開啟:

GitHub上已經有很多可利用的POC,也可在公眾號回復1938可進行下載。

現在利用該漏洞去讀取WEB-INF/web.xml文件:

該POC讀取目錄為ROOT,其他不行:

Part.4

修復建議

漏洞修復

目前,Apache官方已發布9.0.31、8.5.51及7.0.100版本對此漏洞進行修復,CNVD建議用戶儘快升級新版本或採取臨時緩解措施:

1. 如未使用Tomcat AJP協議:

如未使用Tomcat AJP 協議,可以直接將 Tomcat 升級到9.0.31、8.5.51或 7.0.100 版本進行漏洞修復。

如無法立即進行版本更新、或者是更老版本的用戶,建議直接關閉AJPConnector,或將其監聽地址改為僅監聽本機localhost。

具體操作:

(1)編輯 <CATALINA_BASE>/conf/server.xml,找到如下行(<CATALINA_BASE> 為 Tomcat 的工作目錄):

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

(2)將此行注釋掉(也可刪掉該行):

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

(3)保存後需重新啟動,規則方可生效。

2、如果使用了Tomcat AJP協議

建議將Tomcat立即升級到9.0.31、8.5.51或7.0.100版本進行修復,同時為AJP Connector配置secret來設置AJP協議的認證憑證。

例如(注意必須將YOUR_TOMCAT_AJP_SECRET更改為一個安全性高、無法被輕易猜解的值):

<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS"secret="YOUR_TOMCAT_AJP_SECRET"/>

如無法立即進行版本更新、或者是更老版本的用戶,建議為AJPConnector配置requiredSecret來設置AJP協議認證憑證。例如(注意必須將YOUR_TOMCAT_AJP_SECRET更改為一個安全性高、無法被輕易猜解的值):

<Connectorport="8009"protocol="AJP/1.3"redirectPort="8443"address="YOUR_TOMCAT_IP_ADDRESS"requiredSecret="YOUR_TOMCAT_AJP_SECRET"/>

Part.5

結語

好啦,這就是今天的全部內容了。

歡迎到公眾號:一名白帽的成長史提問&留言~