在數(shù)字化浪潮席卷全球的今天,Web 應用已成為企業(yè)運營和個人生活不可或缺的一部分。然而,伴隨其廣泛應用而來的,是日益嚴峻的網(wǎng)絡安全挑戰(zhàn)。每一次漏洞的曝光,都如同敲響的警鐘,提醒著我們對系統(tǒng)安全的持續(xù)關注和投入。Apache Tomcat 爆出的反序列化漏洞(CVE-2025-24813)再次將焦點引向了 Web 應用服務器的安全問題。本文將對這一漏洞進行深入剖析,從其概覽、風險自查、修復建議,到漏洞原理及利用方式,再到如何通過專業(yè)工具進行有效防護,為您提供一份全面的技術解讀。

01

漏洞概覽

/ TINGYUN

Apache Tomcat 是美國阿帕奇(Apache)基金會一款廣泛使用的輕量級 Web 應用服務器,主要用于實現(xiàn)對 Servlet 和 JavaServer Page(JSP)的支持。此次漏洞的產(chǎn)生源于 Apache Tomcat 反序列化機制未對用戶輸入進行嚴格驗證,導致攻擊者能夠通過構造惡意序列化對象繞過安全限制,進而實現(xiàn)遠程惡意代碼的執(zhí)行,最終獲取服務器的控制權。這無疑對依賴Tomcat的企業(yè)和個人用戶構成了巨大的潛在威脅。

02

風險自查

/ TINGYUN

為了及時發(fā)現(xiàn)并規(guī)避潛在風險,企業(yè)應立即對當前使用的Apache Tomcat 版本進行自查。您可以通過聽云 ASPM 的組件風險功能或其他專業(yè)的安全檢測工具,核查您的 Tomcat 版本是否處于以下受影響的范圍內(nèi):

PlainText

11.0.0-M1 ≤ Apache Tomcat ≤ 11.0.2

10.1.0-M1 ≤ Apache Tomcat ≤ 10.1.34

9.0.0.M1 ≤ Apache Tomcat ≤ 9.0.98

03

如何修復受影響的程序

/ TINGYUN

要修復 CVE-2025-24813,請立即執(zhí)行以下操作:

  • 升級 Apache Tomcat 到 11.0.3 或以上版本。

  • 升級 Apache Tomcat 到 10.1.35 或以上版本。

  • 升級 Apache Tomcat 到 9.0.99 或以上版本。

臨時緩解措施:

  • 禁用 DefaultServlet 寫入功能:在?web.xml?中確保?readonly=true。

  • 禁用文件會話持久化:移除?context.xml?中的 PersistentManager 配置。

  • 移除漏洞庫:刪除或更新類路徑下存在漏洞的庫(如 commons-collections-3.2.1.jar 如果在不需要該組件的情況下)。

04

漏洞的原理及利用

/ TINGYUN

漏洞的原理

在 Tomcat 中,HTTP PUT 請求中的 Content-Range 頭字段發(fā)揮著實現(xiàn)大文件分塊傳輸?shù)闹匾饔?。當文件上傳處于未完成狀態(tài)時,這些上傳內(nèi)容會被臨時存放在 Tomcat 工作目錄中,具體位置是:

?$CATALINA_BASE/work/Catalina/localhost/ROOT?

該漏洞的核心在于不完整 PUT 請求上傳時的文件名處理機制,其會將文件路徑中的分隔符?/?轉換為?.?。例如,訪問路徑?/xxxxx/session?會被解析為?.xxxxx.session。因此,整個漏洞的利用過程為:

  • Tomcat 的 File 會話存儲默認路徑同樣位于:?CATALINA_BASE/work/Catalina/localhost/ROOT?

  • 當存在反序列化利用鏈時,可以上傳包含惡意序列化數(shù)據(jù)的文件

  • 通過設置?JSESSIONID=.xxxxx?來觸發(fā)漏洞

漏洞利用方法(利用環(huán)境均在本地環(huán)境進行)

利用條件

//?1.DefaultServlet 啟用了寫入權限(默認禁用)

//?2.服務器啟用了partial PUT(默認啟用)

//?3.Tomcat 使用了基于文件的 Session 持久化機制(非默認配置,默認為基于內(nèi)存持久化),且存儲位置為默認路徑

//?4.應用程序包含 可利用的反序列化漏洞庫(如 Commons-Collections 3.x)。(如果包含這個條件則可以 RCE,不然只能 java 原生反序列化如 URLDNS 鏈)

利用方法 1: CC 鏈

//?1.在符合利用條件的 Tomcat 版本中請求 Tomcat 主頁

//?2.獲取原始數(shù)據(jù)包

//?3.構造 RCE 鏈(如果有 cc 依賴或其他 RCE 依賴的情況下)通過 yakit 自帶插件 yso-java hack 生成混淆后的反序列化 base64 數(shù)據(jù)

//?4.把生成的數(shù)據(jù)放到數(shù)據(jù)包中構造惡意的請求,返回 409

//?5.再構造一個帶 Cookie:JSESSIONID=.poc (剛才請求的路徑的最上級路徑”/”用”.”替換,返回 500

//?6.RCE 成功,彈出計算器

利用方法 2:URLDNS 鏈

//?1.同樣的用 yso-java hack 構造序列化數(shù)據(jù)

//?2.把生成的數(shù)據(jù)放到數(shù)據(jù)包中構造惡意的請求,返回409

//?3.再構造一個帶 Cookie:JSESSIONID=.poc (剛才請求的路徑的最上級路徑”/”用”.”替換,返回500

//?4.觀察 DNSLOG 平臺,收到服務器請求,說明反序列化成功,服務器請求了我們發(fā)送的 URL 類

05

聽云 ASPM 如何提供幫助

/ TINGYUN

面對日益復雜的網(wǎng)絡安全威脅,專業(yè)的應用安全性能管理(ASPM)工具顯得尤為重要。聽云 ASPM 用戶可以通過威脅感知,組件風險,來實時觀察自己的系統(tǒng)是否存在 0day 安全風險以及 1day 或 nday 的組件風險。針對上述 Tomcat 漏洞,聽云 ASPM 能夠發(fā)揮以下關鍵作用:

命令執(zhí)行漏洞發(fā)現(xiàn)?

當 Tomcat 通過聽云探針插樁后,聽云 ASPM 能夠立即發(fā)現(xiàn)命令執(zhí)行漏洞。當應用程序調用了計算器行為時,ASPM 會立即發(fā)出警報,即使攻擊者對 payload 進行了混淆或雙字節(jié)字符處理,也無法逃避其監(jiān)控。

反序列化漏洞發(fā)現(xiàn):?

聽云 ASPM 能夠精準識別反序列化漏洞。當 java.net.URL 類被反序列化加載時,ASPM 會立即發(fā)現(xiàn)并展示完整的調用堆棧,幫助安全人員快速定位問題。

組件風險庫:?

聽云 ASPM 的組件風險庫會定期更新最新的組件 CVE 漏洞信息。通過組件風險功能,用戶可以清晰地看到其應用程序所使用的組件是否存在已知的安全風險,從而及時進行修復和升級。

06

結論

/ TINGYUN

Apache Tomcat 反序列化漏洞(CVE-2025-24813)的曝光,再次凸顯了在當前復雜多變的網(wǎng)絡環(huán)境中,開發(fā)人員定期更新依賴項、檢查安全架構以及部署專業(yè)安全工具的重要性。這一事件不僅是對技術人員的一次警醒,也證明了聽云 ASPM 類型應用安全性能管理工具在 0day 漏洞防護、組件安全等應用安全領域中的不可替代作用。只有持續(xù)關注安全動態(tài),積極采取防護措施,才能在網(wǎng)絡空間中筑牢堅實的防線,確保業(yè)務的持續(xù)穩(wěn)定運行。

參考:

https://github.com/advisories/GHSA-83qj-6fr2-vhqg

聲明:

本文的所有漏洞環(huán)境均為本地測試環(huán)境,且本文僅供學習參考使用,請勿用作違法用途,否則后果自負。

?

推薦閱讀

  • 壓測也叫壓力測試或性能測試,是軟件開發(fā)周期中常見的環(huán)節(jié)。往往很多時候我們的壓測方案都是有問題的,本文將具體闡述怎么做壓測,以及如何正確的做壓測。

    2022-03-08

  • 觀察典型高性能應用程序的延遲情況,我們通常會發(fā)現(xiàn)應用的延遲大多會在一個狹窄的范圍內(nèi)變化,但是偶爾會出現(xiàn)非常高的延遲,這對于高性能應用程序的影響可能是巨大的。

    2022-02-08

  • 在當下的企業(yè)環(huán)境中,智能運維AIOps(應用人工智能于IT運維)已成為一項不可或缺的戰(zhàn)略。智能運維AIOps不僅實現(xiàn)了IT運維自動化,還通過應用高級分析技術對業(yè)務數(shù)據(jù)進行實時監(jiān)控和決策,大大提高了團隊解決事件的速度。

    2023-09-12