用途
该技能用于在授权安全测试中识别和利用开放重定向(Open Redirect)漏洞。开放重定向指应用程序将用户重定向到用户提供的 URL 而未验证目标地址,攻击者可借此将用户引导至恶意站点。
适用时机包括:测试登录/登出流程中重定向到指定 URL 的场景;评估带 redirect_uri 参数的 OAuth 授权端点;审计含 URL 参数(next、url、redirect、return、goto、target)的应用;在钓鱼模拟中将开放重定向与凭证收集链式结合;测试 SSO 实现的 redirect 验证弱点。
主要能力
- 识别常见重定向参数名称,如 url、redirect、next、return、returnUrl、goto、target、dest、destination、redir、redirect_uri、continue、view 等。
- 测试基础开放重定向载荷:直接外部 URL、协议相对 URL(//evil.com)、@ 符号滥用(userinfo abuse)、反斜杠重定向、空字节注入等。
- 应用验证绕过技术:子域混淆、URL 编码、双重 URL 编码、混合大小写协议、CRLF 注入、JavaScript 协议、Data URI 等。
- 测试基于路径的重定向:相对路径注入、路径遍历、片段绕过、参数污染。
- 与其他漏洞链式利用:OAuth 令牌窃取、钓鱼放大、通过 javascript: 协议实现 XSS、Referer 泄露。
- 自动化测试:使用 OpenRedireX、gf、nuclei、ffuf 等工具批量测试。
使用方式
工作流分为六步:
- 识别重定向参数:使用 Burp Suite 爬取应用,查找所有重定向参数,并用 curl 测试基础重定向。
- 测试基础开放重定向载荷:如
curl -v "http://target.com/redirect?url=https://evil.com"、//evil.com、https://target.com@evil.com、https://evil.com\@target.com、https://evil.com%00.target.com。 - 应用验证绕过技术:子域混淆(
https://target.com.evil.com)、URL 编码(https%3A%2F%2Fevil.com)、双重编码、混合大小写协议(HtTpS://evil.com)、CRLF 注入(%0d%0aLocation:%20https://evil.com)、JavaScript 协议、Data URI。 - 测试路径重定向:相对路径注入(
/\evil.com、/.evil.com)、路径遍历(/../../../evil.com)、片段绕过(https://evil.com#target.com)、参数污染(url=https://target.com&url=https://evil.com)。 - 与其他漏洞链式利用:OAuth 令牌窃取(将开放重定向作为 redirect_uri)、钓鱼(受害者看到初始 URL 为 target.com)、通过 javascript: 协议实现 XSS。
- 自动化测试:使用 OpenRedireX(
python3 openredirex.py -l urls.txt -p payloads.txt --keyword FUZZ)、gf 提取重定向参数、nuclei 模板扫描、ffuf 模糊测试。
适用场景
- 钓鱼放大:利用受信任域上的开放重定向增强钓鱼 URL 的可信度。
- OAuth 令牌窃取:在 OAuth 流程中利用开放重定向作为 redirect_uri 窃取授权码和访问令牌。
- SSO 绕过:将 SSO 认证响应重定向到攻击者控制的服务器以捕获会话令牌。
- 通过重定向实现 XSS:将开放重定向与 javascript: 协议链式结合实现跨站脚本。
- Referer 泄露:利用开放重定向在重定向到外部站点时泄露 Referer 头中的敏感令牌。
限制与前提
前提条件:Burp Suite 或 OWASP ZAP 用于拦截重定向请求;开放重定向绕过载荷集合;外部域或 Burp Collaborator 用于确认重定向;理解 URL 解析和编码方案;带开发者工具的浏览器用于观察重定向链;了解 HTTP 301/302/303/307/308 重定向状态码。
法律声明:该技能仅用于授权安全测试和教育目的。未经授权对不拥有或未获书面许可测试的系统使用属违法行为,可能违反计算机欺诈法。
输出格式
评估报告包含目标、发现的可利用参数数量、所需绕过技术,以及发现表格(端点、参数、载荷、影响)和修复建议(实施允许列表、服务端严格验证、拒绝外部域、使用间接引用映射)。