今天,我将分享一个通过发现 Fastly 子域接管漏洞并获得2000美金的漏洞赏金。
这是从 2022 年 10 月 2 日星期日开始的。这一天像往常一样开始了。
选择了一个以前挖过的资产并开始执行子域名枚举(我们将我们的目标称为 redacted.com)
我使用 Google搜索黑客语法、 OWASP Amass和Gobuster工具
枚举子域后,删除重复的条目并使用Anew工具将它们合并到一个文件 (subdomains.txt) 中。
然后将 subdomains.txt 文件传递到我的 cname.sh shell 脚本,枚举 CNAME 记录并存储在 cnames.txt 中。
然后将 subdomains.txt 文件传递给HTTPX工具。探测实时网站并存储在 servers_details.txt 中。
我开始分析 cnames.txt 文件,发现一个子域指向两个不同的 CNAME 记录。我在子域上运行了 dig 命令并得到了以下信息
此子域有两个 CNAME 记录。第一个 CNAME 记录指向 webflow.io 域,第二个 CNAME 记录指向 fastly.net (Fastly Service) 域。每当我们有多个 CNAME 记录时,第一个 CNAME 记录会将我们重定向到下一个 CNAME 记录,依此类推。重定向将继续,直到我们到达最后一个 CNAME 记录。
我开始分析 servers_details.txt 文件以查找有趣的内容并找到了这一行。注意状态码和网站标题。
状态码为“500”,标题为“Fastly error: unknown domain next.redacted.com”。
通过查看 CNAME 记录(“redacted.fastly.net”)和网站指纹“Fastly error: unknown domain” ,
我们可以确认这是Fastly Subdomain Takeover。
如果一个网站有这个指纹那么它可能会受到攻击。但是,我之前多次遇到过这个Fastly指纹并且它并不容易受到攻击。它只有在满足某些条件时才会受到攻击,所以这是一个边缘案例。
大多数时候我们无法接管 Fastly 服务。例如,下面的情况
但是,如果该域尚未被其他客户占用,那么我们可以声明该域并完全接管子域。
我去 fastly.com 检查它是否存在漏洞。
我在 fastly.com 上已经有一个 2 年前创建的帐户,但 6 个月前删除了这个帐户,因为我相信 Fastly 是安全的(现在发现我错了,没有任何系统是绝对安全的)。
我原以为会出现错误消息(域已被其他客户占用),但没有出现错误消息。我被重定向到下一页“主机页面”。这对我来说是一个惊喜。
确认漏洞后,我登录到我的 VPS 服务器并创建了一个名为“hosting”的目录。然后在“hosting”目录中创建一个名为“index.html”的简单 HTML 文件。
“index.html”文件包含以下代码,
然后,我在当前工作目录中的端口80上启动了一个简单的Python Web服务
然后我转到 Fastly 仪表板并在主机页面中添加了我的 VPS 服务器的公网IP 地址。
几秒钟后,我打开了一个新的浏览器窗口并访问了“ http://next.redacted.com/index.html ”页面。
我的 PoC 文件渲染成功。我已经写了一份详细的报告并提交到 HackerOne 上。
我让我的 Fastly 服务运行了 3 天,并监控服务器日志中的敏感信息。观看其他漏洞赏金猎人的方法很有趣。
我的报告被分类为高严重性漏洞,并在 10 天内奖励 2000 美元。
2.子域名枚举是关键。尽可能多的枚举子域名,字典很重要。