📌 摘要:
漏洞赏金并不总是能快速赚钱。有时,它需要长时间投入、不断失败,以及对细节的执着。这是一项真实的研究,讲述了我如何在一个目标上花费近三个月的时间,测试了数十个失败的有效载荷,编写了自定义侦察脚本,最终发现了一个导致基础设施完全被攻陷的连锁漏洞——并因此获得了100 万美元的赏金。
本文包含以下内容:
- 真正的侦察技术
- 多次尝试利用漏洞均失败
- 自定义代码示例
- 有效载荷故障
- 如何像高级攻击者一样思考
- 以及我如何让最终报告无懈可击
🧭 目标选择与初步侦察(第 1-2 周)
范围:拥有 SaaS 产品、多个子域、云托管服务(AWS/GCP)和 OAuth 集成的大型企业。
侦察策略:
我没有跑开subfinder
然后继续前进。我构建了一个自定义管道:
# 步骤 1:子域名枚举
subfinder -d target.com | anew subs.txt
assetfinder target.com | anew subs.txt
amass enum -passive -d target.com | anew subs.txt
# 步骤 2:解析 + 扫描 + 技术指纹
dnsx -l subs.txt -resp-only | httpx -status-code -title -tech-detect -threads 200 > alive.txt
然后使用gau
、katana
和waybackurls
深入挖掘存档内容:
cat alive.txt | gau | grep "=" | tee params.txt
通过 Burp Intruder 和 ffuf 进行手动模糊测试有助于识别 Swagger 文档或前端 JavaScript 中不存在的模糊 API 端点。
❌ 数十次失败的尝试(第 3-5 周)
1. 通过 PDF 生成器进行 SSRF
- 有效载荷:
url=http://169.254.169.254/latest/meta-data/iam/security-credentials/
- 结果:被 SSRF 保护中间件阻止。
2. 计费 API 上的 IDOR
- 尝试过:
GET /api/v2/invoices/123456
→ 403GET /api/v2/invoices?user_id=mine
→ 仅返回我的数据 - 没有成功。AuthZ 检查很可靠。
3. 嵌入式聊天小部件中的XSS
- 存储型 XSS 失败 — WAF 阻止了危险脚本
- CSP 过于严格,DOMPurify 已到位
这时,我考虑过放弃这个目标。但我没有。为什么?因为一件事:
💡 突破:OAuth 流程滥用(第 6-8 周)
在测试 SSO 集成时,我注意到他们的一个内部工具使用了第三方 SSO(Auth0),但有一个单独的后端 JWT 验证器。
关键问题:
他们信任kid
JWT 标头,但没有验证它来自他们已知的 JWKs 端点。
我制作了一个伪造的 JWT
kid=../../../../dev/null
,然后alg=HS256
使用他们几个月前忘记删除的泄露的 GitHub 存储库强行获取签名密钥。
PoC JWT:
{
“alg” :“HS256” ,
“kid” :“../../../../dev/null”
}
使用密钥:"insecure-temp-secret"
Bingo。后端接受了 JWT,并将我视为内部管理员。
🔐 权限提升(第 9 周)
现在作为管理员,我访问了:
/admin/users
→ 完整用户数据库/admin/billing/export
→ 发票和 PII/internal/devops/env-vars
→ 包含 AWS 密钥
那些 AWS 密钥?赋予了我对其整个 S3 bucket 、CloudWatch 日志以及 SSM 参数存储中 secrets的读写权限。
💣 最终连锁总结(第 10-12 周)
- 侦察→发现隐藏子域名
- GitHub 侦察 → 泄露的 JWT 签名密钥
- 利用 JWT 信任漏洞 → 成为内部管理员
- 升级到云访问→泄露2000多万用户记录
- 通过签名的测试文件证明访问权限→没有造成损害,一切合乎道德
📝 让我获得报酬的报告
我提交了一份报告,内容如下:
- 使用 Postman 和 curl 的一个有效 PoC
- Python 中的 JWT 生成脚本
- 漏洞利用视频(已删除 PII)
- 云环境访问演示
- 建议:修复 JWT 验证逻辑、轮换 AWS 密钥、限制内部角色
回复:
“我们已经确认了事件的严重性。鉴于此次事件对身份、云和数据访问的影响极其严重,我们将发放最高赔付额度:100万美元。”
🎯 给你的收获
- 永远不要止步于侦察。要比工具更深入。
- 失败的有效载荷是流程的一部分。请跟踪它们。
- 结合知识:OAuth、云、JWT、逻辑缺陷。
- 始终保持道德规范并清晰地记录一切。
- 您可能只需要三次失败的尝试就能解决价值百万美元的错误。
公众号:安全狗的自我修养
bilibili:haidragonx
原文始发于微信公众号(安全狗的自我修养):价值 100 万美元的漏洞:我如何花费 3 个月时间锁定一个目标并找到职业生涯中最关键的攻击链
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论