开放重定向攻击手册
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @user_3c6cb52e/open-redirect-kmu1。
技能介绍
解决什么问题
开放重定向不是简单地“跳转到别处”,而是让可信域名成为未授权跳转的跳板。常见业务里 redirect、url、next、return_to 等参数如果没有严格校验,攻击者可以把 https://bank.com/redirect?url=https://evil.com 发给用户;用户看到可信域名,点击进入后却落在仿冒登录页。它还会和 OAuth redirect_uri、CSRF Referer 校验、服务端 URL 预览、window.opener 等机制组合,形成令牌窃取、会话劫持或 SSRF 的前置步骤。这个技能把开放重定向写成一份可执行的手工测试手册,帮助工程师从参数定位、过滤绕过到链式利用逐步排查。
技能如何工作
- 定位 sink:先看服务端常见的
Location、302、URL 拼接,以及客户端location.href、window.location、location.replace等赋值点。 - 校验绕过:覆盖
//evil.com、\/\/evil.com、https://trusted.com@evil.com、/\evil.com、endswith校验、子域接管等模式。 - 链式利用:说明开放重定向如何放大钓鱼、绕过
Referer检查、在 OAuth implicit/authorization code/OIDC 场景泄露 fragment 或 query 中的令牌、以及在服务端跟随跳转时触发 SSRF。 - 解析器差异:用 validator 与浏览器视角的对照表解释为什么看似相对路径或编码字符串最终可能变成
https://evil.com。 - Tabnabbing:检查
target="_blank"是否缺少rel="noopener",避免新标签页通过window.opener反向劫持原页面。
适用边界
这份资料偏红队测试与漏洞分析,适合用于授权范围内验证重定向逻辑、redirect_uri 白名单、OAuth 回调、URL 预览与链接展开服务。它不是通用 WAF 规则清单,也不能替代真实环境中的业务语义验证;实际利用效果取决于目标是否允许跨协议跳转、是否保留 query/fragment、前端是否渲染用户可控链接,以及后端客户端对重定向和编码的处理方式。
使用场景
- 在授权渗透中定位 redirect、url、next 等参数,并用 //evil.com 等 payload 验证跳转是否越权。
- 排查 OAuth redirect_uri 白名单,结合 fragment 与 query 场景分析 access_token 或 code 是否被带走。
- 审查服务端 URL 预览、link unfurler 是否跟随 302,进而测试多跳重定向和 DNS rebinding 的 SSRF 边界。
- 检查 target="_blank" 的用户内容链接是否缺 rel="noopener",评估新标签页通过 window.opener 反向劫持原页面。
适合人员
- 负责 Web 授权渗透的安全工程师,需要把开放重定向从单点跳转排查推进到钓鱼与令牌泄露链。
- 做认证与 OAuth 集成的后端工程师,需要检查 redirect_uri 校验和回调跳转是否会泄露 token/code。
- 维护 URL 预览或 webhook 的后端工程师,需要确认服务端跟随重定向时的 SSRF 风险与绕过面。
- 做前端安全审查的前端工程师,需要识别 target="_blank" 与 window.opener 带来的反向 Tabnabbing 风险。