开放重定向:一个真实可信的链接如何将你带向攻击者

更新于 2026年9月27日

把鼠标悬停在一个链接上,看到 google.com 或者一个你熟悉的网站名称出现,于是毫无戒心地点击了它。然而,你却落到了一个钓鱼页面上。这既不是显示错误,也不是地址伪装:这个链接一开始的确指向真实的网站。这正是开放重定向(open redirect)的运作机制。

什么是开放重定向?

许多网站提供一项完全合法的功能:在某个操作之后将访客重定向到另一个地址,例如登录之后、点击赞助链接之后,或通过一个短链接服务。网站在其 URL 中接收目标地址,然后把浏览器送往该地址。

当网站接受任何目标地址,而不检查其是否属于一份授权列表时,漏洞便随之出现。开发者构建了一项有用的重定向服务;他们只是忘记关上后门。任何人都可以因此制作一个以受信任网站的名称开头、但实际终点却在别处——攻击者那里——的链接。

陷阱链接的解剖

让我们看一个刻意简化的结构示例:

https://www.google.com/url?q=https://site-pirate.example

这个链接确实会在 Google 的服务器上打开:域名 google.com 是真实的,地址栏在这一点上没有说谎。但参数 ?q= 携带了第二个地址,一旦重定向被触发,它就会成为真正的目的地。同样的手法也出现在其他同样常见的参数名称中:?dest=、?redirect=、?target=、?next=,或者 ?url=。发现问号后紧跟着这些关键词之一,后面再跟着第二个网址,是最简单的警惕信号。

将链接 https://www.google.com/url?q=https://site-pirate.example 分解为两个区域:左侧为绿色,显示真实域名 google.com/url,经过浏览器验证,真实可信;右侧为红色,显示参数 ?q= 之后的真正目的地 site-pirate.example,浏览器会在重定向后加载该地址。
图1:最先显示的域名是真实的;真正的目的地则隐藏在参数之后。

攻击者为何钟爱这项技术

这种方法一举解决了攻击者的两个问题。

  • 绕过反垃圾邮件过滤器。 电子邮件安全网关(Secure Email Gateway)会为邮件中出现的域名分配一个信任分数。一个以极具声誉的域名开头的链接,比如某个搜索引擎或大型社交网络的域名,即便过滤器从未查看链接被隐藏的部分,往往也能获得很高的分数。
  • 操纵人的阅读习惯。 一个谨慎的人已经学会在点击前检查域名。但面对这类链接时,这种检查反倒对他不利:他清楚地看到地址最开头出现的官方品牌名称,便就此止步,不再往下读。

这种手法因此同时利用了技术上的信任(反垃圾邮件过滤器的评分)和人为的信任(阅读的本能反应),而无需模仿受信任网站的域名或服务器。

幕后机制:301、302 状态码与重定向链

从技术上讲,一次重定向只是服务器对浏览器一个非常简短的响应。服务器以一个 HTTP 状态码作答,不显示任何可见的页面:临时重定向用302,永久重定向用301。浏览器立即服从,加载下一个地址,用户对此毫无察觉。

没有什么能阻止把多个重定向串联起来:一个声誉极佳的域名 A,指向一个更不起眼、本身也存在漏洞的域名 B,再指向最终的钓鱼页面。每多一个环节,踪迹就更模糊一分,想仅凭观察就追溯到链接源头的人,工作也就更加困难。

由箭头连接的三个环节组成的链条:声誉极佳的域名 A,响应码为 302,指向存在漏洞的域名 B,响应码为 301,后者又指向最终的钓鱼页面;每个环节都表明浏览器在屏幕上不显示任何内容的情况下服从了指令。
图2:在到达陷阱页面之前,可能会有多个连续的重定向串联在一起。

如何识别陷阱并作出反应

正确的方法是从左到右通读完整地址,而不是在第一个可识别的名称处就停下来。要寻找的信号很简单:同一行后面隐藏的第二个 http:// 或 https://,几乎总是意味着一个开放重定向,就像紧挨在它前面出现的 ?q= 或 ?url= 之类的参数一样。这种警惕性,与通过其他方式(比如相似字母)识破一个具有欺骗性的域名所需的警惕性是相通的,参见指南Punycode 与同形字域名。

要在毫无风险的情况下核实一个目的地,可以把地址粘贴到在线链接解析工具中,或者在终端运行 curl -I 命令:服务器会返回重定向码和最终目的地,而页面始终不会在浏览器中被加载。

有两份举报是有用的,分别涉及两个不同的对象。首先通知域名作为起点的公司(例如通过其安全表单或专门用于漏洞报告的地址),以便其修复代码中未经验证的参数。然后通知落地页面的托管商,做法与举报任何钓鱼页面完全一样(参见找到托管商正确的 abuse@ 地址),因为正是托管商才能让该页面消失。

此外,包含这类链接的电子邮件本身仍然是一封由真实服务器发出的邮件,带有自己的痕迹:参见指南分析一次钓鱼攻击:从邮件到基础设施。将完整邮件粘贴到 Baitback 中,该工具会自行追踪整条重定向链,直到最终页面,无需点击链接或打开终端。

要点回顾
  • 开放重定向是一项被滥用的合法功能:起点网站是真实的,但目的地不一定是。
  • 需要留意的参数看起来像 ?q=、?url=、?redirect=、?dest=、?target= 或 ?next=。
  • 这项技术既能借助第一个域名的声誉欺骗反垃圾邮件过滤器,也能欺骗常常过早停止阅读的人。
  • 301 和 302 状态码使得在到达陷阱页面之前,可以串联多个不可见的重定向。
  • 必须通读整个链接,并同时举报起点网站(以便其修复漏洞)和最终页面的托管商。

收到可疑邮件了吗?

将其粘贴到 Baitback:工具会找出发送它的服务器及其托管服务商,并一步为您准备好举报内容。

分析邮件

全部指南