Apache Tomcat文件包含漏洞分析

2021-02-19 ADLab

更多安全資訊和分析文章請關注啟明星辰ADLab微信公眾號及官方網站(adlab.venustech.com.cn)

2020年2月20日,國家信息安全漏洞共享平臺(CNVD)發布關於Apache Tomcat的安全公告,Apache Tomcat文件包含漏洞(CNVD-2020-10487,對應CVE-2020-1938)。Tomcat AJP協議由於存在實現缺陷導致相關參數可控,攻擊者利用該漏洞可通過構造特定參數,讀取伺服器webapp下的任意文件。若伺服器端同時存在文件上傳功能,攻擊者可進一步實現遠程代碼的執行。通過對Apache Tomcat源碼進行分析,發現Tomcat在處理ajp協議時存在漏洞,可通過調用request.setAttribute為Tomcat設置任意request屬性,如下圖所示:

通過分析復現發現Tomcat ajp協議存在web目錄下任意文件讀取漏洞以及JSP文件包含漏洞。當ajp URI設置為非jsp路徑時,Tomcat會調用DefaultServlet處理,此時會導致web目錄任意文件讀取漏洞。當ajp URI設置為jsp路徑時,Tomcat會調用JspServlet處理,此時會導致JSP文件包含漏洞。

2.1 Web目錄任意文件讀取漏洞

當ajp URI設置為非jsp路徑時,Tomcat會調用DefaultServlet處理,我們需要控制如下兩個屬性:javax.servlet.include.path_info

javax.servlet.include.servlet_path

其中,javax.servlet.include.servlet_path屬性為當前項目路徑、javax.servlet.include.path_info屬性為目錄路徑。然後,通過DefaultServlet類的getRelativePath方法進行拼接獲得path路徑。如下圖所示:

最後,會將path帶入到getResource(path)方法中造成任意文件讀取。如下圖所示:

利用該漏洞成功讀取到/WEB-INF/目錄下web.xml文件。

當ajp URI設置為jsp路徑時,Tomcat會調用JspServlet的service方法處理,如下圖所示:

同樣會獲取javax.servlet.include.path_info、javax.servlet.include.servlet_path這兩個屬性(經過上面的分析我們已經知道可以通過ajp協議控制這兩個屬性)。將這兩個屬性對應的值拼接到jspURi變量中,最後交給serviceJspFile方法處理,如下圖所示:

Venus.txt文件代碼如下所示:

 成功RCE結果如下圖所示:

Tomcat 6

Tomcat 7

Tomcat 8

Tomcat 9

將Tomcat立即升級到9.0.31、8.5.51或7.0.100版本進行修復。

禁用AJP協議。

編輯 /conf/server.xml,找到如下行:

<Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />

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

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

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

ADLab成立於1999年,是中國安全行業最早成立的攻防技術研究實驗室之一,微軟MAPP計劃核心成員,「黑雀攻擊」概念首推者。截止目前,ADLab已通過CVE累計發布安全漏洞1000餘個,通過 CNVD/CNNVD累計發布安全漏洞600餘個,持續保持國際網絡安全領域一流水準。實驗室研究方向涵蓋作業系統與應用系統安全研究、移動智能終端安全研究、物聯網智能設備安全研究、Web安全研究、工控系統安全研究、雲安全研究。研究成果應用於產品核心技術研究、國家重點科技項目攻關、專業安全服務等。


相關焦點

  • [漏洞預警] Apache Tomcat伺服器存在文件包含漏洞(CVE-2020-1938)
    2020年2月20日,國家信息安全漏洞共享平臺公布了Apache Tomcat伺服器存在文件包含漏洞(漏洞編號:CNVD-2020-10487/ CNNVD-202002-1052/ CVE-2020-1938)。
  • 高危漏洞|Apache Tomcat AJP協議文件包含漏洞(CNVD-2020-10487)
    月20日,國家信息安全漏洞共享平臺(CNVD)披露了Apache Tomcat AJP協議文件包含漏洞(CNVD-2020-10487,對應CVE-2020-1938)。攻擊者利用該漏洞,可在未授權的情況下遠程讀取特定目錄下的任意文件。目前,漏洞細節尚未公開,廠商已發布新版本完成漏洞修復。
  • CVE2020-1938 Apache Tomcat文件包含漏洞
    漏洞介紹:2020年1月6日,國家信息安全漏洞共享平臺(CNVD) 發布了Apache Tomcat文件包含漏洞(CNVD-2020-10487,對應CVE-2020-1938)。該漏洞是因為Tomcat AJP協議存在缺陷而導致得,攻擊者可以利用該漏洞通過構造特定參數,從而讀取伺服器webapp下的任意文件。如果目標伺服器同時存在文件上傳功能,攻擊者便可進一步實現遠程代碼執行。
  • 「GhostCat」 Tomcat 文件讀取與文件包含漏洞分析(CVE-2020-1938)
    關於 GhostCatTomcat 最近曝出了一個新的高危漏洞,由長亭命名為「GhostCat」,該漏洞可以讀取和包含 Tomcat 應用的任意文件
  • 【通告更新】Apache Tomcat伺服器文件包含漏洞安全風險通告第三次更新
    CNVD漏洞公告稱Apache Tomcat伺服器存在文件包含漏洞,攻擊者可利用該漏洞,在未授權的情況下遠程讀取或包含Tomcat上webapp目錄下的任意文件,如:相關配置文件或原始碼等。若伺服器端同時存在文件上傳功能,攻擊者可進一步結合文件包含實現遠程代碼的執行。目前此漏洞的PoC和EXP已經在網際網路公開和傳播,有被惡意利用的可能。
  • Apache Tomcat文件包含漏洞風險大,威脅全球約8萬臺伺服器
    CNVD(國家信息安全漏洞共享平臺)公告知名Web應用伺服器Apache Tomcat被爆存在文件包含漏洞,攻擊者可構造惡意的請求包進行文件包含操作
  • Apache-Tomcat-Ajp漏洞(CVE-2020-1938)漏洞復現
    此漏洞為文件包含漏洞,攻擊者可利用該漏洞讀取或包含 Tomcat 上所有 webapp 目錄下的任意文件,如:webapp 配置文件、原始碼等。二、漏洞編號:cnvd-2020-10487cve-2020-1938三、受影響版本:apache tomcat 6apache tomcat 7 < 7.0.100apache tomcat 8 < 8.5.51apache tomcat 9 < 9.0.31已修復版本
  • Apache Tomcat文件包含漏洞(CVE-2020-1938)安全通告
    目前,Apache官方已發布9.0.31、8.5.51及7.0.100版本對此漏洞進行修復,建議用戶儘快升級新版本。官方下載連結:http://tomcat.apache.org/download-70.cgihttp://tomcat.apache.org/download-80.cgihttp://tomcat.apache.org/download-90.cgi新華三IPS規則庫將在1.0.87版本支持對該漏洞的攔截,建議關注新華三官網及時升級版本並使能相關規則
  • 針對Tomcat文件包含高危漏洞 | 黑盾雲提供在線免費檢測
    【漏洞描述】由於 Tomcat AJP協議設計的缺陷,存在文件包含漏洞:攻擊者可利用Tomcat AJP Connector讀取或包含webapp目錄下的任意文件此外,在目標應用有文件上傳功能的情況下,配合文件包含的利用,可遠程執行任意代碼,進而控制伺服器。 【漏洞危害】利用此漏洞可讀取Tomcat webapp目錄下任意文件,造成重要文件數據洩露,同時如果應用場景存在上傳功能,可利用上傳模塊配合文件包含的利用,可造成伺服器被遠程控制。
  • Apache Tomcat高危安全漏洞風險提示
    根據公告,當Tomcat使用NTFS文件系統從網絡位置提供資源時,存在未授權查看JSP原始碼的漏洞,導致信息洩露效果,建議及時更新到漏洞修復的版本。Apache Tomcat歷史安全公告請參考:Apache Tomcat 10.x版本http://tomcat.apache.org/security-10.htmlApache Tomcat 9.x版本http://tomcat.apache.org/security-9.htmlApache Tomcat 8.5
  • Apache-Tomcat-Ajp(cve-2020-1938)漏洞復現
    Apache Tomcat伺服器存在文件包含漏洞,攻擊者可利用該漏洞讀取或包含 Tomcat 上所有 webapp 目錄下的任意文件,如:webapp 配置文件或原始碼等。二、漏洞危害:由於Tomcat默認開啟的AJP服務。
  • Tomcat 爆出高危漏洞!
    (CNVD) 收錄了 CNVD-2020-10487 Apache Tomcat文件包含漏洞。CNVD-2020-10487/CVE-2020-1938是文件包含漏洞,攻擊者可利用該高危漏洞讀取或包含 Tomcat 上所有 webapp 目錄下的任意文件,如:webapp 配置文件或原始碼等。
  • 深入分析Apache Tomcat中的WebSocket漏洞
    在本文中,我們將與讀者一起深入分析Apache Tomcat中的WebSocket漏洞。在這篇文章中,我們將深入分析Apache Tomcat伺服器中近期曝出的一個漏洞及其利用方法,以幫助該軟體的用戶評估其面臨的業務風險。該漏洞是與WebSockets一起出現的拒絕服務漏洞,並且已分配了漏洞編號CVE-2020-13935。在滲透測試期間,我們經常會碰到用戶運行過時版本的Apache Tomcat的情況。
  • 【漏洞預警】 天融信關於Apache Tomcat(CVE-2019-0232)遠程代碼執行漏洞預警
    0x01漏洞描述4月10日Apache發布公告稱,在Windows平臺上運行的Tomcat存在一個遠程代碼執行漏洞。漏洞成因是當將參數從JRE傳遞到Windows環境時,由於CGI Servlet中的輸入驗證錯誤而存在該漏洞。
  • Apache Tomcat 7.x安全加固指南
    有關補丁的可用性和嚴重性的信息,請參見http://tomcat.apache.org/lists.html#tomcat-announce。 更新可能會影響功能。關於核心/業務方面的Tomcat的更新可能帶來的副作用,請查看http://tomcat.apache.org/lists.html#tomcat-announce。
  • 【漏洞通告】Apache Tomcat 拒絕服務漏洞(CVE-2021-41079)
    收錄於話題 #漏洞預警 0x00 漏洞概述CVE     IDCVE-2021-41079時
  • Apache Tomcat 安裝與配置教程
    2、下載apache-tomcat 8.0服務安裝包。,包含bin、include、jre、lib等文件夾。三、安裝apache-tomcat1、解壓下載好的apache-tomcat-8.0.1-windows-x64.zip程序,然後將解壓的apache-tomcat-8.0.9
  • Apache Tomcat 拒絕服務漏洞安全通告(CVE-2021-42340)
    近日,新華三攻防實驗室威脅預警團隊監測到Apache官方發布了Apache Tomcat拒絕服務漏洞(CVE-2021-42340)的風險通告,鑑於漏洞危害較大,建議客戶排查並升級到安全版本。該漏洞是由於對歷史bug 63362的修復引入了內存洩漏,當Tomcat WebSocket連接關閉時,用於收集 HTTP升級連接指標的對象沒有被釋放,造成了內存洩漏。
  • 基於Tomcat無文件Webshell研究
    Engine:最頂層容器組件,其下可以包含多個 Host。Host:一個 Host 代表一個虛擬主機,其下可以包含多個 Context。Context:一個 Context 代表一個 Web 應用,其下可以包含多個 Wrapper。Wrapper:一個 Wrapper 代表一個 Servlet。
  • 【漏洞預警】Apache Tomcat CVE-2018-1305安全繞過漏洞
    綜述2018年2月23日,Apache Tomcat報告了一個漏洞,該漏洞可以繞過一些安全控制,漏洞編號為CVE