价值 100 万美元的漏洞:我如何花费 3 个月时间锁定一个目标并找到职业生涯中最关键的攻击链

admin 2025年4月11日10:53:01评论20 views字数 1961阅读6分32秒阅读模式

价值 100 万美元的漏洞:我如何花费 3 个月时间锁定一个目标并找到职业生涯中最关键的攻击链

图片来源 — - TheIndianNetwork

📌 摘要:

漏洞赏金并不总是能快速赚钱。有时,它需要长时间投入、不断失败,以及对细节的执着。这是一项真实的研究,讲述了我如何在一个目标上花费近三个月的时间,测试了数十个失败的有效载荷,编写了自定义侦察脚本,最终发现了一个导致基础设施完全被攻陷的连锁漏洞——并因此获得了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

然后使用gaukatanawaybackurls深入挖掘存档内容:

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→ 403
    GET /api/v2/invoices?user_id=mine→ 仅返回我的数据
  • 没有成功。AuthZ 检查很可靠。

3. 嵌入式聊天小部件中的XSS

  • 存储型 XSS 失败 — WAF 阻止了危险脚本
  • CSP 过于严格,DOMPurify 已到位

这时,我考虑过放弃这个目标。但我没有。为什么?因为一件事:

💡 突破:OAuth 流程滥用(第 6-8 周)

在测试 SSO 集成时,我注意到他们的一个内部工具使用了第三方 SSO(Auth0),但有一个单独的后端 JWT 验证器。

关键问题:

他们信任kidJWT 标头,但没有验证它来自他们已知的 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 周)

  1. 侦察→发现隐藏子域名
  2. GitHub 侦察 → 泄露的 JWT 签名密钥
  3. 利用 JWT 信任漏洞 → 成为内部管理员
  4. 升级到云访问→泄露2000多万用户记录
  5. 通过签名的测试文件证明访问权限→没有造成损害,一切合乎道德

📝 让我获得报酬的报告

我提交了一份报告,内容如下:

  • 使用 Postman 和 curl 的一个有效 PoC
  • Python 中的 JWT 生成脚本
  • 漏洞利用视频(已删除 PII)
  • 云环境访问演示
  • 建议:修复 JWT 验证逻辑、轮换 AWS 密钥、限制内部角色

回复:

“我们已经确认了事件的严重性。鉴于此次事件对身份、云和数据访问的影响极其严重,我们将发放最高赔付额度:100万美元。”

🎯 给你的收获

  • 永远不要止步于侦察。要比工具更深入
  • 失败的有效载荷是流程的一部分。请跟踪它们。
  • 结合知识:OAuth、云、JWT、逻辑缺陷。
  • 始终保持道德规范并清晰地记录一切。
  • 您可能只需要三次失败的尝试就能解决价值百万美元的错误

公众号:安全狗的自我修养

bilibili:haidragonx

原文始发于微信公众号(安全狗的自我修养):价值 100 万美元的漏洞:我如何花费 3 个月时间锁定一个目标并找到职业生涯中最关键的攻击链

免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉。
  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2025年4月11日10:53:01
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   价值 100 万美元的漏洞:我如何花费 3 个月时间锁定一个目标并找到职业生涯中最关键的攻击链https://cn-sec.com/archives/3943915.html
                  免责声明:文章中涉及的程序(方法)可能带有攻击性,仅供安全研究与教学之用,读者将其信息做其他用途,由读者承担全部法律及连带责任,本站不承担任何法律及连带责任;如有问题可邮件联系(建议使用企业邮箱或有效邮箱,避免邮件被拦截,联系方式见首页),望知悉.

发表评论

匿名网友 填写信息