IPBUF安全漏洞报告
English
CVE-2025-63784 CVSS 6.5 中危

CVE-2025-63784 Onlook OAuth回调开放重定向漏洞

披露日期: 2025-11-07

漏洞信息

漏洞编号
CVE-2025-63784
漏洞类型
开放重定向 (Open Redirect)
CVSS评分
6.5 中危
攻击向量
网络 (AV:N)
认证要求
低权限 (PR:L)
用户交互
无需交互 (UI:N)
影响产品
Onlook web application

相关标签

开放重定向OAuthX-Forwarded-HostOnlookCVE-2025-63784钓鱼攻击Web安全身份认证绕过

漏洞概述

CVE-2025-63784是Onlook web应用0.2.32版本中的一个开放重定向漏洞。该漏洞存在于OAuth认证回调处理器中,具体位于onlook/apps/web/client/src/app/auth/callback/route.ts文件。漏洞的根本原因在于应用程序在构建重定向URL时,无条件地信任了X-Forwarded-Host HTTP头的值,而没有对其进行充分的验证和过滤。攻击者可以通过构造恶意的X-Forwarded-Host头,将已认证用户的OAuth回调请求重定向到任意外部网站。由于OAuth认证流程通常涉及敏感的用户会话信息,攻击者可以利用此漏洞实施钓鱼攻击,诱导用户访问恶意网站并窃取敏感信息或执行进一步的攻击。此漏洞不需要高权限,攻击者只需诱骗已认证用户访问特制的链接即可实现攻击。

技术细节

该漏洞的技术原理涉及OAuth 2.0认证流程中的回调处理机制。在正常的OAuth认证流程中,用户完成身份验证后,认证服务器会向回调URL发送一个包含授权码或令牌的请求。在Onlook应用中,回调处理器位于/auth/callback路由,当构建重定向目标URL时,应用程序直接从X-Forwarded-Host头获取主机信息,而没有验证该值的合法性。攻击者可以通过在请求中注入任意域名作为X-Forwarded-Host头的值,使得应用将用户重定向到攻击者控制的外部网站。由于OAuth回调通常发生在用户已经通过身份验证之后,用户对后续的重定向操作会降低警惕性,从而更容易成为钓鱼攻击的受害者。攻击者可以利用此漏洞窃取OAuth令牌或进行其他恶意活动。

攻击链分析

STEP 1
步骤1
攻击者创建钓鱼页面或诱骗链接,诱导已认证用户访问包含恶意X-Forwarded-Host头的OAuth回调请求
STEP 2
步骤2
用户浏览器向Onlook服务器的/auth/callback端点发送请求,携带攻击者设置的X-Forwarded-Host头
STEP 3
步骤3
Onlook应用接收请求,在构建重定向URL时直接使用X-Forwarded-Host头的值,未进行验证
STEP 4
步骤4
应用返回302重定向响应,Location头指向攻击者控制的恶意域名
STEP 5
步骤5
用户浏览器跟随重定向,被导向攻击者控制的钓鱼网站,可能被窃取OAuth令牌或敏感信息

PoC / 利用代码

⚠️ 仅供安全研究
以下代码仅用于安全研究和授权测试,未经授权使用属于违法行为。
PoC
import requests # CVE-2025-63784 PoC - Open Redirect in Onlook OAuth Callback # Target: Onlook web application 0.2.32 target_url = "http://target-onlook-server.com/auth/callback" malicious_domain = "https://attacker-controlled-site.com" headers = { "X-Forwarded-Host": malicious_domain, "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36" } # Construct OAuth callback request with malicious X-Forwarded-Host params = { "code": "legitimate_oauth_code", "state": "random_state_value" } # Send request with manipulated header response = requests.get(target_url, params=params, headers=headers, allow_redirects=False) print(f"Status Code: {response.status_code}") print(f"Location Header: {response.headers.get('Location')}") # The Location header should point to the attacker-controlled domain if malicious_domain in str(response.headers.get('Location')): print("[+] Open Redirect vulnerability confirmed!") print("[+] User will be redirected to attacker-controlled site")

影响范围

Onlook web application 0.2.32

防御指南

临时缓解措施
在官方补丁发布前,可以通过配置Web应用防火墙(WAF)规则来缓解此漏洞:限制X-Forwarded-Host头只能包含预定义的信任域名,或完全移除对X-Forwarded-Host头的依赖,直接使用服务器配置中的域名进行重定向。同时建议监控异常的OAuth回调请求模式,及时发现和阻止潜在的攻击行为。

参考链接

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