昨天,群里聊嗨了。大家都在遠程辦公,卻都急急忙忙的升級線上的 Tomcat 版本,原因就是 Tomcat 被曝出了嚴重的漏洞,幾乎涉及到所有的版本。
一、漏洞原理
具體來說就是 Apache Tomcat 服務器存在文件包含漏洞,攻擊者可利用該漏洞讀取或包含 Tomcat 上所有 webapp 目錄下的任意文件,如:webapp 配置文件或源代碼等。
由於 Tomcat 默認開啟的 AJP 服務(8009 端口)存在一處文件包含缺陷,攻擊者可構造惡意的請求包進行文件包含操作,進而讀取受影響 Tomcat 服務器上的 Web 目錄文件。
二、漏洞編號
根據資料顯示,涉及到兩個漏洞編號。
- CVE-2020-1938
- CNVD-2020-1048
三、漏洞影響的版本
- Apache Tomcat 6
- Apache Tomcat 7 < 7.0.100
- Apache Tomcat 8 < 8.5.51
- Apache Tomcat 9 < 9.0.31
四、漏洞詳情
首先啟動 apache tamcat 服務,訪問 localhost:8080 可以成功訪問如下界面。

通過上圖,我們可以確定到對應 Tomcat 的版本號。
然後再使用漏洞掃描工具對其進行端口掃描發現 8009、8080 都已端口開啟,證明有該漏洞。

然後,大家可以利用 github 上別人寫好的腳本進行攻擊演示。下載地址如下,有兩個。任選其一即可。
Poc1 下載地址:
https://github.com/0nise/CVE-2020-1938
Poc2 下載地址:
https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi
下載好後進入該文件夾 cmd 命令執行並加上網址參數利用 poc。需要注意的是 poc 為 py2 環境。然後執行下面的命令。

執行成功後就可以看到成功訪問到該文件 web.xml。其他的 WEB-INF 下面的文件都可以訪問到,包括你的源碼文件,jsp、html、.class 等。

五、漏洞修復方案
1、禁用Tomcat 的 AJP 協議端口,在 conf/server.xml 配置文件中注釋掉 <Connector port=”8009″ protocol=”AJP/1.3″redirectPort=”8443″ />。
2、在 ajp 配置中的 secretRequired 跟 secret 屬性來限制認證。
3、對 Tomcat 進行版本升級。
六、寫在最後
你們公司有沒有用 Tomcat?用的版本是多少?有沒有中招?歡迎留言區評論交流!
原創文章,作者:投稿專員,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/221858.html
微信掃一掃
支付寶掃一掃