Tomcat文件包含漏洞:CNVD-2020-10487(簡介/驗證/利用/修復)

漏洞簡介

Tomcat 服務器是一個免費的開放源代碼的Web 應用服務器,屬於輕量級應用服務器,在中小型系統和併發訪問用戶不是很多的場合下被普遍使用,是開發和調試JSP 程序的首選。由於Tomcat默認開啓的AJP服務(8009端口)存在一處文件包含缺陷,攻擊者可構造惡意的請求包進行文件包含操作,進而讀取受影響Tomcat服務器上的Web目錄文件(webapps目錄)。

影響範圍

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

開啓靶機

(1)此處直接使用vulhub搭建,方便快速,一鍵搞定。vulhub的搭建參見https://github.com/vulhub/vulhub/blob/master/README.zh-cn.md,此處不在贅述。
vulhub安裝完後,直接進入tomcat/CVE-2020-1938目錄下,輸入docker-compose up -d啓動(最好開代理下載會快很多)
在這裏插入圖片描述
(2)docker ps命令確認8080端口的apache已開啓,8009端口的AJP服務也已開啓。8009服務就是該漏洞所在服務,但是無法通過瀏覽器來直接訪問連接。
在這裏插入圖片描述

漏洞驗證(POC)

(1)使用github上檢測腳本:https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi,輸入python CNVD-2020-10487-Tomcat-Ajp-lfi.py 192.168.3.103 -p 8009,成功讀取WEB-INF/web.xml文件,漏洞驗證成功。(python2版本)
在這裏插入圖片描述

漏洞利用

由於該漏洞利用有一點限制,必須要將文件上傳到web目錄下,文件後綴名不限,然後可以實現反彈shell。
(1)生成jsp文件反彈shell
在這裏插入圖片描述
(2)使用腳本執行上傳的shell.jsp文件
在這裏插入圖片描述
(3)kali上監聽地址,收到反彈的shell
在這裏插入圖片描述
在這裏插入圖片描述

漏洞修復

如果相關用戶暫時無法進行版本升級,可根據自身情況採用下列防護措施。

一、若不需要使用Tomcat AJP協議,可直接關閉AJP Connector,或將其監聽地址改爲僅監聽本機localhost。

具體操作:

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

<Connector port="8009"protocol=“AJP/1.3” redirectPort=“8443” />
(2)將此行註釋掉(也可刪掉該行):

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

二、若需使用Tomcat AJP協議,可根據使用版本配置協議屬性設置認證憑證。

使用Tomcat 7和Tomcat 9的用戶可爲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”/>

使用Tomcat 8的用戶可爲AJP Connector配置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” />

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章