Yuan Tuo
文章29
标签27
分类12
利用大厂 BUG 的短网址系统

利用大厂 BUG 的短网址系统

TL;DR

本文将简单介绍一下什么是短网址系统,以及其是如何利用大厂的 BUG 来实现转跳的。

简介

短网址系统是一种将长网址转换为短网址的系统,例如有名的 dwz.cnt.cn 等等。这种系统的好处是可以将长网址转换为短网址,简单来说有下面的特点:

  • 在短信等场景下,可以节省字符数
  • 有的支持自定义,便于记忆
  • 隐藏 url 的地址,普通用户不会直接看到 url 的地址
  • 统计用户的点击量
  • 统计用户的地理位置和访问设备

当然,除此之外还有以赚钱为目的的短网址服务。如果你曾在数年前下载并使用过 Minecraft Forge,你可能会知道 Adf.ly,这是一个短网址系统,它会将用户重定向到广告页面,等待几秒后再重定向到用户想要访问的页面。这种系统可以为网站提供收入,有点类似于网赚网盘的模式。

在国内搭建一个短网址系统一般有备案方式,以及绕过方式。

备案方式

如某度旗下提供的 dwz.cn 工具,在多年前是可以直接生成短网址的,但是在 2022 年之后,它变成只向备案的企业开放了。原先匿名生成的短网址也不能再访问了。

再如 t.cn,它是某博的短网址系统,在多年前在聊天框发送的网址会自动转换为 t.cn 的短网址,但是在 2018 年之后,它也变成只向绑定指定域名的开发者开放了。

绕过方式

但除了上面提到的备案方式,如果你在搜索引擎中搜索“短网址”,你会发现有很多短网址系统,它们并没有备案,但是仍然可以正常使用。这是因为它们采用了其他的技术绕过了限制。

服务器不备案

有一部分的短网址系统并没有在中国大陆的服务器上部署,而是在国外的服务器上部署,这样就可以绕过备案的限制。例如 bit.ly,它的服务器在海外,所以可以正常使用。

使用漏洞

如 t.cn 等服务已经采用了白名单的制度,所以如果还想要使用它,就需要找到“漏洞”来绕过域名限制。

例如某个 Google 搜索排名第一的 “t.cn生成” 网站,它巧妙的运用了某度的一个漏洞,将用户输入的网址通过某度的域名进行转跳,这样就可以绕过 t.cn 的域名限制了。

具体的方式如下:

  1. 用户输入网址
  2. 网站将网址存储到自己的服务器中,并得到一个 id
  3. 编写一个 xml 文件保存到某度的 oss 服务中,这时候会得到一个 bcebos.com 的域名
  4. 将这个 id 拼接到 bcebos.com 的域名后面,得到一个新的网址
  5. 将这个新的网址拼接到某度手机端的域名后面,得到一个 baidu.com 域名结尾的网址
  6. 将这个新的网址通过 t.cn 进行转跳,得到一个 t.cn 域名结尾的网址
  7. 显示给用户

这样就可以绕过 t.cn 的域名限制了。

漏洞分析

当用户访问短网址时,会经过下面的流程:

  1. 用户访问 t.cn 的网址,转跳到某度的网址 http://m13.baidu.com/sf?word=121&mod=0&tn=nohead&pd=mms_mip&actname=act_sf_mip&title=%E9%A6%96%E9%A1%B5&top=%7B%22sfhs%22%3A%224%22%7D&ext=%7B%22url%22%3A%22%252F%252F****.bj.bcebos.com%2F1b%2F****.xml%3Fu%3D****%26txxx%3D***%253Fxhdl%253Dbaidu_aladdin%22%2C%22lid%22%3A%22****%22%7D&lid=****&referlid=****&ms=1#75178
  2. 某度网页会根据 url 中的 xml 文件地址,加载 http://****.bj.bcebos.com/1b/****.xml?u=****&txxx=***?xhdl=baidu_aladdin 这个 xml 文件
  3. 而这个 xml 文件中引用了一个 js 文件 https://****.bj.bcebos.com/***js/***.min.js?t=8,这个 js 文件经过了简单的混淆,简单的分析代码逻辑,发现它会获取 url 中 u 参数和运行环境,再向服务器发送请求获取真实的网址,之后会尝试跳转到这个真实的网址

JS文件运行逻辑

这个漏洞实际上是利用了某度的前端网页会根据 url 加载外部的 xml 文件,他们可能是为了方便自己的开发者,但是这个功能被利用了,导致了这个漏洞。

其实这个漏洞和 XSS 漏洞有点类似,会将恶意构造的 url 传递给网页前端并且加载。

漏洞分析

如上图所示,参数中的 xml 被加载到了 baidu.com 域名下的网页中。另外,根据这个 div 的 id 命名 “super-frame”,看上去有点像 uniapp,可能是某度开发的一个框架,可以灵活的加载外部的文件。

本文作者:Yuan Tuo
本文链接:https://blog.imwcr.cn/2024/01/21/bug-short-link/
版权声明:本文采用 CC BY-NC-SA 3.0 CN 协议进行许可
×