.zip 结尾的域名很危险吗?有多危险?

Google 于 2023 年 5 月 10 日全面开放了以 .zip 结尾的域名,这一举动引起了安全研究人员和社区的警惕,他们担心该通用顶级域名(gTLD,Generic top-level domains)会被用于创建足以迷惑计算机高手的恶意 URL。

2023 年 5 月 3 日,Google 宣布了包括 .zip.mov 在内的 8 个全新的通用顶级域名:

  • .dad
  • .phd
  • .prof
  • .esq
  • .foo
  • .zip
  • .mov
  • .nexus

并于 5 月 10 日通过 Google Domains 向公众开放注册。

Google Domains 是 Google 提供的一项域名注册和管理服务,支持用户搜索和注册域名

小心!含有 .zip 的恶意 URL

安全研究员 Bobby Rauch 指出(The Dangers of Google's .zip TLD),要警惕含有 .zip、Unicode 字符(特别是 U+2044、U+2215 等)以及 @ 符号的恶意 URL。这类恶意 URL 迷惑性极强,甚至能欺骗十分有经验的用户。

若点击 https://google.com@bing.com 这个 URL,实际访问的是 https://bing.com。这是因为根据 RFC 3986 Uniform Resource Identifier (URI): Generic Syntax 的规定,@ 符号之前的 google.com 应识别为用户信息,其后的 bing.com 才是主机名(域名)。我们可以借助常用的编程语言来确认这一点,如利用 PHP 的 parse_url() 函数:

php 复制代码
<?php
var_dump(parse_url("https://google.com@bing.com"));
array(3) {
  ["scheme"]=>
  string(5) "https"
  ["host"]=>
  string(8) "bing.com"
  ["user"]=>
  string(10) "google.com"
}

然而,若 @ 之前有正斜杠 /,如 https://google.com/search@bing.com,则浏览器会将 /search@bing.com 部分识别为路径,最终访问的是 https://google.com/ 下的文件 search@bing.com。由于没有这个文件,结果自然是 404。

php 复制代码
<?php
var_dump(parse_url("https://google.com/search@bing.com"));
array(3) {
  ["scheme"]=>
  string(5) "https"
  ["host"]=>
  string(10) "google.com"
  ["path"]=>
  string(16) "/search@bing.com"
}

Bobby Rauch 就是利用了上述规则,创建了一个恶意 URL,

perl 复制代码
https://github.com∕kubernetes∕kubernetes∕archive∕refs∕tags∕@v1271.zip

乍看之下,这个 URL 似乎是用于从 GitHub 上下载 v1271 这个特定版本的 Kubernetes 的链接。但实际上 parse_url() 函数的解析结果显示,真正要访问的域名却是 v1271.zip 而不是 github.com

php 复制代码
<?php
var_dump(parse_url("https://github.com∕kubernetes∕kubernetes∕archive∕refs∕tags∕@v1271.zip"));
array(3) {
  ["scheme"]=>
  string(5) "https"
  ["host"]=>
  string(9) "v1271.zip"
  ["user"]=>
  string(63) "github.com?__kubernetes?__kubernetes?__archive?__refs?__tags?__"
}

若你不小心点击了这类域名,那么恭喜你,很可能喜提一个 evil.exe(请注意动画演示中的左下角)。

仅凭肉眼可能难以分辨以下两个 URL 的区别吧:

ruby 复制代码
https://github.com∕kubernetes∕kubernetes∕archive∕refs∕tags∕
https://github.com/kubernetes/kubernetes/archive/refs/tags/

但若调整一下字体,则可以发现端倪,

恶意 URL 中的正斜杠 / 根本不是真正的 /(U+002F),

而是下面这个看起来很像 / 的 Unicode 字符:

由于恶意 URL 中并没有使用真正的 /,因此根据 RFC 3986 的规定,@ 之前的部分github.com∕kubernetes∕kubernetes∕archive∕refs∕tags∕ 尽管看似域名与路径,但实际上却是用户信息(真够长的)。

在刚刚的动画演示中,Bobby Rauch 其实还使用了另一个迷惑人的小伎俩------在电子邮件客户端上,将 @ 的字号大小更改为 1,让这个特殊字符几乎看不到,从而更隐秘地伪装了恶意 URL。

对于由以 .zip 结尾的域名带来的安全隐患,Bobby Rauch 给出的建议是,在单击 URL 之前,先将鼠标悬停在该 URL 上并检查浏览器底部显示真正要访问的 URL。

相关推荐
蝎蟹居1 天前
GBT 4706.1-2024逐句解读系列(29) 第7.9~7.10条款:开关,档位应明确标识
人工智能·单片机·嵌入式硬件·物联网·安全
北辰当尹1 天前
第27天 安全开发-PHP应用&TP框架&路由访问&对象操作&内置过滤绕过&核心漏洞
android·安全·php
edisao1 天前
四。SpaceX、网络化与未来的跨越:低成本、高频次的真正威胁
大数据·开发语言·人工智能·科技·php
小小代码狗1 天前
PHP伪协议和文件包含
网络·网络安全·php
聚铭网络1 天前
聚铭网络再次入选数世咨询《中国数字安全价值图谱》“日志审计”推荐厂商
网络·安全
工业HMI实战笔记1 天前
HMI权限分级设计:兼顾安全与操作效率的平衡术
运维·数据库·安全·ui·自动化·人机交互·交互
qq_406176141 天前
深耕JS防抖与节流:从原理到工程化实践的全方位指南
开发语言·php
恃宠而骄的佩奇1 天前
APP客户端安全评估思路及工具分享
测试工具·安全·网络安全·app客户端安全评估
蝎蟹居1 天前
GBT 4706.1-2024逐句解读系列(28) 第7.8条款:X,Y型连接正确标示接地符号
人工智能·单片机·嵌入式硬件·物联网·安全
吉吉611 天前
在 Windows 和 Linux 的 VSCode 中配置 PHP Debug
开发语言·php