如何通过GitHub仓库失效链接劫持赚取2万美元以上
当其他人都在扫描网站时,我把注意力转向了GitHub仓库——并构建了一个Bash管道,帮助我发现别人遗漏的失效链接。
2021年,我专注于大多数漏洞赏金猎人最终都会探索的一个漏洞类别:失效链接劫持。
初始阶段
和其他人一样,我开始扫描网站、页脚和社交媒体链接中的过时资源。其中一些资源可以被接管(如S3存储桶、GCP、GitHub页面)。我获得了一些赏金,但很快意识到这个领域已经人满为患。太多人在追逐同样的低垂果实。
于是我开始寻找其他地方——那里猎人更少。
🔍 转向GitHub
由于我当时在GitHub上非常活跃(主要是为开源项目做贡献),我开始思考:
“为什么不扫描GitHub仓库中的失效链接呢?”
毕竟,仓库中充满了:
- 包含过时URL的文档
- 引用旧资产的CI/CD或安装脚本
- 外部服务如S3、GCP或GitHub页面
最棒的是:没有多少猎人在大规模针对这个攻击面。
⚠️ GitHub搜索的限制
最初,我尝试了GitHub的搜索。但很快遇到了问题:
- 无法搜索大型仓库的全部内容
- 结果不完整且不一致
- GitHub的API限制使自动化变得痛苦
于是我把搜索转移到了本地。
🛠️ 我的本地Bash管道
我构建了一个基本但强大的Bash管道:
- 将GitHub组织的所有仓库克隆到本地
- 使用正则表达式递归扫描所有文件以提取URL
- 对每个URL运行HTTP调用以检测404或410响应
我将这些脚本打包成一个工具,你可以在这里找到: 👉 github.com/arshadkazmi42/github-scanner-local
没什么花哨的——只是本地克隆和智能grep——但它很有效。
✅ 实际成果
我开始在漏洞赏金计划中的GitHub组织上运行这个工具,并看到了可观的回报:
- 大多数组织至少有一个失效链接
- 大约70-80%的报告被接受
- 赏金从100美元到1,500美元不等
- 少数案例获得更多,特别是当资产劫持或接管成为可能时
仅这种方法就帮助我在接受的漏洞赏金中赚取了超过20,000美元。