昨天,羣裏聊嗨了。你們都在遠程辦公,卻都急急忙忙的升級線上的 Tomcat 版本,緣由就是 Tomcat 被曝出了嚴重的漏洞,幾乎涉及到全部的版本。html
1、漏洞原理
具體來講就是 Apache Tomcat 服務器存在文件包含漏洞,攻擊者可利用該漏洞讀取或包含 Tomcat 上全部 webapp 目錄下的任意文件,如:webapp 配置文件或源代碼等。git
因爲 Tomcat 默認開啓的 AJP 服務(8009 端口)存在一處文件包含缺陷,攻擊者可構造惡意的請求包進行文件包含操做,進而讀取受影響 Tomcat 服務器上的 Web 目錄文件。github
2、漏洞編號
根據資料顯示,涉及到兩個漏洞編號。web
CVE-2020-1938apache
CNVD-2020-1048服務器
3、漏洞影響的版本
Apache Tomcat 6app
Apache Tomcat 7 < 7.0.100webapp
Apache Tomcat 8 < 8.5.51jsp
Apache Tomcat 9 < 9.0.31工具
4、漏洞詳情
首先啓動 apache tamcat 服務,訪問 localhost:8080 能夠成功訪問以下界面。
經過上圖,咱們能夠肯定到對應 Tomcat 的版本號。
而後再使用漏洞掃描工具對其進行端口掃描發現 800九、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 等。
5、漏洞修復方案
一、禁用Tomcat 的 AJP 協議端口,在 conf/server.xml 配置文件中註釋掉 <Connector port="8009" protocol="AJP/1.3"redirectPort="8443" />。
二、在 ajp 配置中的 secretRequired 跟 secret 屬性來限制認證。
三、對 Tomcat 進行版本升級。
6、寫在最後
大家公司有沒有用 Tomcat?用的版本是多少?有沒有中招?歡迎留言區評論交流!
————————————————版權聲明:本文爲CSDN博主「業餘草」的原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處連接及本聲明。原文連接:https://blog.csdn.net/xmtblog/article/details/104454218