GitHub 仓库失效链接劫持:如何通过 Bash 脚本赚取 2 万美元赏金

本文详细介绍了作者如何通过构建本地 Bash 管道扫描 GitHub 仓库中的失效链接,发现可劫持的资产(如 S3 存储桶、GCP 资源),并成功获得超过 2 万美元的漏洞赏金奖励。该方法避开了拥挤的网站扫描,专注于代码仓库中的过时 URL,实现了高回报率的漏洞挖掘。

如何通过 GitHub 仓库失效链接劫持赚取 2 万美元以上 | Arshad Kazmi | 2025 年 7 月 | 信息安全技术文章

大家都在扫描网站,而我专注于 GitHub 仓库——并构建了一个 Bash 管道,帮助我发现别人遗漏的失效链接。

2021 年,我专注于大多数漏洞赏金猎人最终都会探索的一类漏洞:失效链接劫持。

我一开始和大家一样——扫描网站、页脚和社交媒体链接中的过时资源。其中一些资源容易被接管(如 S3 存储桶、GCP、GitHub Pages)。我获得了一些赏金,但很快意识到这个领域已经人满为患。太多人在追逐同样的低悬果实。

所以我开始寻找其他地方——猎人较少的地方。

🔍 转向 GitHub

由于我当时在 GitHub 上非常活跃(主要贡献开源项目),我开始思考:

“为什么不扫描 GitHub 仓库中的失效链接?”

毕竟,仓库中充满了:

  • 带有过时 URL 的文档
  • 引用旧资源的 CI/CD 或安装脚本
  • 外部服务如 S3、GCP 或 GitHub Pages

而最棒的是:没有多少猎人大规模针对这个攻击面。

⚠️ GitHub 搜索的限制

起初,我尝试了 GitHub 的搜索。但很快就遇到了问题:

  • 无法搜索大型仓库的全部内容。
  • 结果不完整且不一致。
  • GitHub 的 API 限制使自动化变得痛苦。

所以我将搜索转移到了本地。

🛠️ 我的本地 Bash 管道

我构建了一个基本但强大的 Bash 管道:

  1. 在本地克隆 GitHub 组织的所有仓库。
  2. 使用正则表达式递归扫描所有文件以提取 URL。
  3. 对每个 URL 运行 HTTP 调用以检测 404 或 410 响应。

我将这些脚本打包成一个工具,你可以在这里找到:

👉 github.com/arshadkazmi42/github-scanner-local

没有什么花哨的东西——只是本地克隆和智能 grep——但它很有效。

✅ 实际成果

我开始在漏洞赏金计划中的 GitHub 组织上运行这个工具,并看到了扎实的回报:

  • 大多数组织至少有一个失效链接。
  • 大约 70-80% 的报告被接受。
  • 赏金从 100 美元到 1500 美元不等。

少数异常情况获得了更多,特别是在资产劫持或接管可能的情况下。

仅这种方法就帮助我获得了超过 2 万美元的已接受漏洞赏金奖励。


文章还包含社区互动、作者其他文章推荐及相关技术内容推荐,但核心内容已完整翻译。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计