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安全, 人工智能安全, 合规性, 案例研究, 渗透测试, 蓝队分析