atendiatec/pentest-samples
GitHub: atendiatec/pentest-samples
一份脱敏的真实渗透测试案例集合,展示了现代 Web 与 API 漏洞的方法论、技术与合规映射,解决如何系统化记录、复现与报告安全问题的难题。
Stars: 0 | Forks: 0
# 渗透测试案例研究
关于现代 Web 应用程序和 API 技术栈中反复出现漏洞的技术案例研究,基于 **AtendIA Tec** 开展的真实渗透测试项目。
每个案例都说明了一种**故障模式**——而非特定客户。
身份信息、确切数量、确切软件版本、域名以及任何
可用于关联的数据均已被删除或泛化。技术细节、
payload、方法论和修复代码均被保留,因为它们
代表了公开的技术知识。
此处展示的所有发现均**已被客户在生产环境**
中修复,随后才进行发布。
## 📄 可用案例
### [Hasura GraphQL Multi-Tenant — 租户隔离被破坏](./case-graphql-multitenant)
在多租户 B2B SaaS 应用程序中反复出现的关键模式,这些应用通过 **Hasura GraphQL Enterprise** + **Firebase Authentication** 暴露了自动 CRUD 功能,但在 `select_permissions` 中没有适当的租户过滤。
| 发现 | 严重程度 |
| ------------------------------------------------------- | ---------- |
| 带有 `Allow-Credentials: true` 的反射型 CORS | 严重 |
| 跨租户 IDOR — 大量数据泄露 | 严重 |
| 以明文形式存储敏感数据 (PCI) | 严重 |
| 跨租户泄露私人消息 | 严重 |
| Firebase 用户枚举 + 泄露的 claims | 高 |
| 生产环境中暴露的管理控制台 | 高 |
| 所有 endpoint 均无 rate limiting | 高 |
**受影响的合规要求:** LGPD (Art. 46, 48), GDPR (Art. 32, 33), PCI-DSS (Req. 3.4, 4.1)。
→ [执行摘要报告](./case-graphql-multitenant/executive-report.md)
→ [技术报告](./case-graphql-multitenant/technical-report.md)
### [Firebase Authentication — 绕过控制与数据暴露](./case-firebase-auth-bypass)
在将身份验证委托给 **Firebase Authentication** 的 SaaS 应用程序中反复出现的模式,且服务端未对 custom claims 和 Security Rules 进行充分的验证。
| 发现 | 严重程度 |
| --- | --- |
| 服务端未验证 custom claims — 管理员权限提升 | 严重 |
| Firestore Security Rules 允许读取所有数据 | 严重 |
| 密码重置无 rate limiting(邮件轰炸) | 高 |
| 修改密码后未使 token 失效 | 高 |
| 通过 Firebase REST API 枚举用户 | 中等 |
**受影响的合规要求:** LGPD (Art. 46, 48), GDPR (Art. 32, 33), OWASP Top 10 2021。
→ [执行摘要报告](./case-firebase-auth-bypass/executive-report.md)
→ [技术报告](./case-firebase-auth-bypass/technical-report.md)
### [REST API — 身份验证与授权故障](./case-rest-api-auth-flaws)
在使用 JWT 身份验证且访问控制缺乏充分验证的 B2B SaaS 应用程序 REST API 中,反复出现的关键模式。
| 发现 | 严重程度 |
| --- | --- |
| 具有弱 secret 的 JWT (HS256) — 伪造 admin token | 严重 |
| Mass assignment — 通过 role 提升权限 | 严重 |
| 搜索参数中的基于 UNION 的 SQL 注入 | 严重 |
| IDOR — 无所有权检查的顺序 ID | 高 |
| 宽松的 CORS — 携带 credentials 的通配符 origin | 高 |
| JavaScript bundle 中暴露的 API keys | 高 |
**受影响的合规要求:** LGPD (Art. 46, 48), GDPR (Art. 32, 33), PCI-DSS (Req. 6.5, 8.2)。
→ [执行摘要报告](./case-rest-api-auth-flaws/executive-report.md)
→ [技术报告](./case-rest-api-auth-flaws/technical-report.md)
### [WhatsApp BaaS 多实例平台 — ZERO-AUTH 链](./case-whatsapp-baas)
将 **Supabase**(Postgres + RPC + Auth)与 Go 编写的 WhatsApp 后端以及通过 **n8n** 进行的编排相结合的 BaaS 平台中,反复出现的最高风险模式。
没有 `auth.uid()` 检查的 RPC 函数,结合 JavaScript 中硬编码的 API keys 和开放的 webhooks,形成了一条链条,其中**匿名攻击者只需使用公开的 `anon key` 即可控制该平台的任何托管实例**。
| 发现 | 严重程度 |
| -------------------------------------------------------------- | ---------- |
| 无 `auth.uid()` 的 Supabase RPC — 完全控制实例 | 严重 |
| JS 中硬编码的 API key — B2B 客户数据库泄露 | 严重 |
| 无身份验证的 n8n Webhooks 接受破坏性函数 | 严重 |
| ZERO-AUTH 链 → 大规模枚举 WhatsApp 号码 | 高 |
| 管理 endpoint 上带有 credentials 的通配符 CORS | 高 |
| 更改密码后 token 未失效 | 高 |
**受影响的合规要求:** LGPD (Art. 46, 48), GDPR (Art. 32, 33), OWASP API Security Top 10 (API1, API2, API5)。
→ [执行摘要报告](./case-whatsapp-baas/executive-report.md)
→ [技术报告](./case-whatsapp-baas/technical-report.md)
### [B2B SaaS 外卖平台 — 无身份验证的 Account Takeover](./case-saas-delivery)
在使用异构技术栈(**WordPress + Ruby on Rails + React SPA + Firebase**)的白标 B2B SaaS 平台(外卖、基于场所的服务)中反复出现的关键模式。无需任何凭证即可接管该场所任何最终客户的账户,无 rate limiting 的 4 位恢复代码,反射型 CORS,暴露的 Google Maps keys。
| 发现 | 严重程度 |
| -------------------------------------------------------------- | ---------- |
| 通过未经身份验证的 `first_register` 导致的账户接管 | 严重 |
| 无 rate limiting 的 4 位恢复代码(轻易的暴力破解)| 严重 |
| 服务器上的 `wp-config.*` 和 `.env` 备份 (HTTP 406) | 严重 |
| 通过电话公开枚举客户 | 高 |
| 带有 `Allow-Credentials: true` 的反射型 CORS | 高 |
| 无限制的 Google Maps API keys(账单滥用) | 高 |
| 启用了 Firebase Anonymous Authentication | 高 |
| 无 CDN/WAF 的 WordPress — 直接暴露 IP + 泄露的 headers | 高 |
**受影响的合规要求:** LGPD (Art. 7, 46, 48), GDPR (Art. 32), OWASP Top 10 2021 (A01, A05, A07)。
→ [执行摘要报告](./case-saas-delivery/executive-report.md)
→ [技术报告](./case-saas-delivery/technical-report.md)
### [Anti-Bot 绕过研究 — 公开 Bug Bounty](./case-anti-bot-research)
针对某商业 Bot 防护产品的对抗性研究,在供应商自己的公开 **bug bounty 计划 (YesWeHack)** 中进行——这是在生产环境中调查绕过技术在伦理上唯一有效的背景。展示了对**现代对抗性自动化**的深入理解:JS 挑战分析、指纹识别(canvas/WebGL/audio/TLS),以及结合 TLS 模拟客户端(`curl_cffi`, `tls_client`)对浏览器自动化方法(Playwright, Camoufox, Nodriver, Patchright)进行的系统基准测试。
| 主题 | 状态 |
| -------------------------------------------------------------- | ---------- |
| JavaScript 挑战的静态分析 | 已记录 |
| 浏览器自动化基准测试(测试了 8 种组合) | 已记录 |
| 用于规模化的混合 pipeline 浏览器→`curl_cffi` | 已记录 |
| 可复现的 pipeline 骨架(recon, scrape, report) | 已记录 |
| 绕过该商业产品的特定 payload | **已省略**(YesWeHack 官方渠道) |
**为何在此展示:** Anti-bot 绕过技能可直接应用于
受委托的审计(WAF、Bot Manager、欺诈检测、撞库、
抓取风险)——同样的工具链能以高级的
攻击者视角来审计防御体系。
→ [执行摘要报告](./case-anti-bot-research/executive-report.md)
→ [技术报告](./case-anti-bot-research/technical-report.md)
## 🎯 这些研究展示了什么
- **端到端应用 OWASP Testing Guide v4.2 + PTES 方法论**
- **双层报告**(使用商业语言的执行摘要 + 包含可复现 PoC、CVSS 和修复方案的技术
报告) — 这是 Mandiant、NCC
Group、Bishop Fox 采用的标准
- **基于截止日期的修复优先级**(48小时 / 2周 / 1个月)
- **在现代技术栈中的实际操作经验** — GraphQL/Hasura、Firebase、Supabase RPC、
Ruby on Rails APIs、JWT、Multi-tenant SaaS、WordPress + headless backends
- **明确映射到合规框架**(CWE、OWASP Top 10、
OWASP API Security Top 10、LGPD、GDPR、PCI-DSS)
- **攻击链** — 不仅是孤立的漏洞,还包括它们
如何组合成链条,将权限从“匿名”提升至“完全控制”
- **对抗性研究** — 针对商业产品(Anti-bot、
WAF)进行的 bug bounty,采用可复现的方法论和道德准则
## 🛠️ 项目中常用的技术栈
- **拦截与模糊测试:** Burp Suite, OWASP ZAP, ffuf, gobuster, sqlmap, nuclei
- **GraphQL:** 内省分析、mutation 枚举、滥用自动 CRUD
- **BaaS:** Supabase RLS + RPC 审计、Firebase Security Rules、custom claims、
PostgREST policies
- **Auth:** JWT 解码、Firebase REST API、OAuth flows、会话管理、
HS256 攻击
- **Anti-bot 研究:** Camoufox, Nodriver, Patchright, curl_cffi, tls_client,
CDP profiling, JA3/JA4 指纹识别
- **自动化:** Python 3 (httpx async, asyncio), curl, mitmproxy
- **基础设施:** Kali Linux, Docker, WSL2, 住宅代理池
## 👤 关于
**Gabriel Tavares** — Security Researcher & Penetration Tester
[AtendIA Tec](https://atendiatec.com.br) 创始人
- 中/英双语(在美国居住和学习了 6 年)
- YesWeHack 活跃的 bug bounty 参与者
- 专注于 Web & API Security、GraphQL、LGPD/GDPR
📫 gabriel@atendiatec.com.br
## ⚠️ 免责声明
这些文档是基于在多个渗透测试项目中观察到的重复模式
综合而成的**案例研究**。所有原始项目
均是在被测系统所有者的**正式事先授权**下进行的,并在发布前给予了
合理的修复时间。
未复制任何真实的客户名称、域名、唯一标识符、确切数量、
凭证或个人数据。与生产环境中
特定系统、公司或个人的任何相似之处均为偶然,并不
代表暴露的真实数据。
标签:API安全, CISA项目, GraphQL, JSON输出, StruQ, Web安全, 人工智能安全, 合规性, 案例研究, 渗透测试, 蓝队分析