用途:当应用的跳转目标由用户输入决定且缺少校验时,攻击者可借可信域名实施钓鱼或令牌窃取。本技能提供系统化的发现、绕过与利用思路。
主要能力:
- 定位跳转参数,常见名包括 url、redirect、next、dest、return、returnUrl、go、continue、callback 等;服务端落点包括 301/302 Location 头、PHP header("Location: $input")、Python redirect(input)、Java sendRedirect、Node res.redirect;客户端落点包括 window.location、location.href、location.replace、window.open、document.location。
- 过滤绕过:协议相对 //evil.com、userinfo 形式 https://trusted.com@evil.com、反斜杠 /\evil.com、URL 编码 %2F%2F、Django endswith 绕过 http://evil.com/www.target.com、空字节截断、片段与查询串混淆、双编码、CRLF 注入等。
- 利用链:钓鱼放大、OAuth 隐式流与授权码流的令牌/授权码窃取、OIDC id_token 片段泄露、CSRF Referer 绕过、服务端跟随跳转导致的 SSRF(含多跳与 DNS 重绑定、gopher/file/dict 协议升级)、反向标签劫持(target="_blank" 缺少 rel="noopener" 时通过 window.opener 改写原页面)。
- 测试清单:逐一验证外部域、协议相对、userinfo、反斜杠、javascript: 伪协议、OAuth redirect_uri、跳转是否携带令牌。
使用方式:按参数发现、落点确认、绕过尝试、链式利用的顺序推进;URL 解析差异表可用于比对校验器与浏览器的解析结果。
适用场景:Web 安全测试、漏洞赏金、OAuth/OIDC 配置审计、SSRF 与钓鱼风险评估。
限制:仅限授权测试;不同浏览器与 HTTP 客户端对跨协议跳转、反斜杠、Unicode 点的处理不一致,实际结果需以目标环境验证为准。具体工具、命令与平台信息暂未提供。