昨天,群里聊嗨了。大家都在遠程辦公,卻都急急忙忙的升級線上的 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?用的版本是多少?有沒有中招?歡迎留言區評論交流!
————————————————
版權聲明:本文為CSDN博主「業余草」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/xmtblog/article/details/104454218