krizhanski/manual-qa-security-portfolio

GitHub: krizhanski/manual-qa-security-portfolio

一个展示如何对故意存在漏洞的 Juice Shop 进行完整手动 QA 与安全评估的项目组合。

Stars: 0 | Forks: 0

# 🧃 OWASP Juice Shop — 手动质量保证项目组合 ![状态](https://img.shields.io/badge/Status-Completed-brightgreen) ![阶段](https://img.shields.io/badge/Testing%20Phases-5-blue) ![测试用例](https://img.shields.io/badge/Test%20Cases-58-informational) ![发现的漏洞](https://img.shields.io/badge/Bugs%20Found-16-red) ![OWASP](https://img.shields.io/badge/OWASP-Top%2010-orange) ![许可证](https://img.shields.io/badge/License-MIT-yellow) ## 📌 关于项目 本仓库记录了对本地部署的 [OWASP Juice Shop](https://owasp.org/www-project-juice-shop/) 实例的**完整质量保证(QA)工作**——这是一个由 OWASP 维护的故意存在漏洞的电子商务应用程序,用于安全意识、教育和实际 QA 培训。 该项目被设计为一个**专业的 QA 作品集**,以展示在多个测试学科中的实践经验: - ✅ **测试计划与文档** — 遵循 IEEE 风格的测试计划 - ✅ **冒烟测试** — 关键入口点的健全性检查 - ✅ **功能测试** — 3 个模块中的 23 个详细测试用例 - ✅ **安全测试** — 使用 Burp Suite 进行分析并映射到 OWASP Top 10 - ✅ **API 测试** — 包含 67 个断言的 Postman 集合 - ✅ **性能测试** — 用于负载、压力、峰值和耐久性的 JMeter 脚本 - ✅ **漏洞报告** — 16 个可交付的缺陷报告,包含 STR 和证据 - ✅ **测试总结报告** — 汇总指标与 OWASP 映射 所有工件均以 Markdown 编写并在此发布,以便轻松阅读、审查和复现。 ## 🎯 项目目标 1. 验证 Juice Shop 核心功能模块(身份验证、产品目录、购物车)的正确行为。 2. 通过手动与工具辅助测试识别、再现并记录缺陷。 3. 展示跨多个测试学科与方法论的实际 QA 技能。 4. 生成一套完整、专业的 QA 交付成果,可作为现实参考模板使用。 ## 🏗 仓库结构 ``` Juice-Shop/ │ ├── 📋 TestPlan_JuiceShop.md ← Master test plan (scope, approach, risks, schedule) │ ├── 🧪 Smoke-Testing/ │ ├── SmokeTesting.md ← 6 smoke tests · 100% pass │ └── *.png ← Screenshots │ ├── 📝 Test-Cases/ │ ├── TestCases.md ← 23 functional test cases │ ├── BugReports.md ← 3 functional bug reports │ └── *.png │ ├── 🔒 Security-Testing/ │ ├── SecurityTesting.md ← 10 security test cases (Burp Suite) │ ├── BugReports.md ← 10 security bug reports (SEC-BUG-01..10) │ └── *.png │ ├── 🔌 API-Testing/ │ ├── APITesting.md ← 15 API tests · Postman collection │ ├── BugReports.md ← 3 API bug reports (API-BUG-01..03) │ ├── Juice-Shop.postman_collection.json │ ├── Juice-Shop-Local.postman_environment.json │ └── *.png │ ├── ⚡ Performance-Testing/ │ ├── PerformanceTesting.md ← JMeter: Load · Stress · Spike · Endurance │ └── *.png │ └── 📊 TestSummaryReport.md ← Consolidated results + OWASP Top 10 mapping ``` ## 📂 交付物与导航 | # | 阶段 | 文档 | 关键输出 | |---|-------|----------|------------| | 1 | 📋 **测试计划** | [TestPlan_JuiceShop.md](./TestPlan_JuiceShop.md) | 范围 · 方法 · 环境 · 风险 · 进度 | | 2 | 🧪 **冒烟测试** | [SmokeTesting.md](./Smoke-Testing/SmokeTesting.md) | 6 个关键入口点已验证 | | 3 | 📝 **功能测试** | [TestCases.md](./Test-Cases/TestCases.md) · [BugReports.md](./Test-Cases/BugReports.md) | 23 个测试用例 · 3 个缺陷 | | 4 | 🔒 **安全测试** | [SecurityTesting.md](./Security-Testing/SecurityTesting.md) · [BugReports.md](./Security-Testing/BugReports.md) | Burp Suite · 10 个漏洞 | | 5 | 🔌 **API 测试** | [APITesting.md](./API-Testing/APITesting.md) · [BugReports.md](./API-Testing/BugReports.md) | Postman · 67 个断言 | | 6 | ⚡ **性能测试** | [PerformanceTesting.md](./Performance-Testing/PerformanceTesting.md) | JMeter · 4 个场景 | | 7 | 📊 **测试总结报告** | [TestSummaryReport.md](./Test-Summary-Report/TestSummaryReport.md) | 汇总指标与建议 | ## 📊 概览结果 ### 测试执行汇总 | 阶段 | 总数 | ✅ 通过 | ❌ 失败 | 通过率 | |-------|-------|---------|---------|-----------| | 冒烟测试 | 6 | 6 | 0 | **100%** | | 功能测试 | 23 | 20 | 3 | **87%** | | 安全测试 | 10 | 0 | 10 | *预期* | | API 测试 | 15 | 13 | 2 | **87%** | | 性能测试 | 4 | — | — | *参见报告* | | **总计(已执行)** | **58** | — | — | — | ### 按严重程度划分的缺陷 | 严重程度 | 数量 | 占比 | |----------|-------|---| | 🔴 严重 | 11 | 69% | | 🟡 中等 | 5 | 31% | | 🟢 低 | 0 | 0% | | **总计** | **16** | **100%** | ### OWASP Top 10 覆盖情况 | OWASP 类别 | 发现数量 | |----------------|----------| | A01 — 失效的访问控制 | 4 | | A02 — 加密故障 | 2 | | A03 — 注入 | 5 | | A04 — 不安全设计 | 2 | | A05 — 安全配置错误 | 2 | | A07 — 身份识别与认证失效 | 2 | | A09 — 安全日志与监控失效 | 1 | ## 🛠 工具与技术 | 类别 | 工具 | |----------|-------| | **容器化** | Docker Desktop(ARM64 / x86_64) | | **浏览器** | Google Chrome(最新稳定版) | | **API 测试** | Postman Desktop、Newman | | **安全测试** | Burp Suite Community Edition、jwt.io、ffuf v2.1.0、CyberChef、FoxyProxy | | **性能测试** | Apache JMeter 5.6.3(附加 Stepping Thread Group、3 个基本图表、PerfMon) | | **文档** | Markdown · GitHub Flavored Markdown | | **监控** | `docker stats`(CPU · 内存) | ## 🚀 复现步骤 ### 先决条件 - 已安装并运行 Docker Desktop - Google Chrome(或任意现代浏览器) - Postman Desktop(用于 API 测试) - Burp Suite Community Edition(用于安全测试) ### 运行应用程序 ``` docker run --rm -p 3000:3000 bkimminich/juice-shop ``` | 端点 | URL | |----------|-----| | 应用程序 | http://localhost:3000/#/ | | API 文档(Swagger) | http://localhost:3000/api-docs | ### 导入 Postman 集合 1. 打开 Postman → **导入** 2. 选择 `API-Testing/Juice-Shop.postman_collection.json` 3. 导入 `API-Testing/Juice-Shop-Local.postman_environment.json` 4. 激活 **Juice Shop Local** 环境 5. 使用 **集合运行器** 执行全部 15 个请求及其断言 ## 🧪 测试方法论 - **等价类划分** — 有效/无效输入分类 - **边界值分析** — 边界值(密码长度、数量限制) - **决策表** — 注册与登录验证逻辑 - **错误猜测** — XSS 载荷、SQL 注入字符串、JWT 篡改 - **探索性测试** — 非脚本化发现意外缺陷 - **OWASP 测试指南** — 与行业标准对齐的安全测试 ## 📸 证据 每个测试用例、缺陷报告与安全发现均附有**截图**,并与对应的 `.md` 文件一同存储。Burp Suite、Postman、JMeter 以及浏览器截图提供了从测试步骤到证据的完整可追溯性。 ## 🎓 本项目所展示的能力 ✅ 编写**清晰、结构化的 QA 文档**(测试计划、测试用例、缺陷报告) ✅ 手动功能测试的实践经验 ✅ 使用 Postman 进行**API 测试**(请求、断言、集合运行器) ✅ **安全测试**思维 — OWASP Top 10、Burp Suite、JWT 攻击、IDOR、Mass Assignment ✅ **性能测试**基础 — JMeter(负载 / 压力 / 峰值 / 耐久性) ✅ 规范的**缺陷生命周期**管理 — 发现、再现、证据、严重性分类 ✅ 优秀的 **Markdown / GitHub** 素养 — 清晰、链接化、可导航的工件 ## 👤 作者 **krizhanski** 手动质量保证工程师 - 🐙 GitHub: [@krizhanski](https://github.com/krizhanski) - 🔒 TryHackMe: 全球排名 **#6421(Top 1%)** ## ⚠️ 免责声明 OWASP Juice Shop 是**故意存在漏洞**的应用程序,内置数十个按设计存在的已知安全缺陷。本仓库中报告的所有漏洞均为**预期的教学用途**,仅用于教育与作品集展示。 ## 📄 许可证 本说明文档根据 [MIT 许可证](./LICENSE) 发布。OWASP Juice Shop 应用程序本身的许可证由其维护者另行规定 — 请参考[官方仓库](https://github.com/juice-shop/juice-shop)。 *作为 OWASP Juice Shop 手动 QA 项目组合的一部分完成 · krizhanski · 2026*
标签:Anchore, API测试, Burp Suite, Endurance 测试, IEEE 测试计划, JMeter, Load 测试, Maven, OWASP Juice Shop, OWASP Top 10, Postman, QA 职业素养, Spike 测试, STR, Stress 测试, 功能测试, 安全测试, 性能测试, 手动测试, 攻击性安全, 数据统计, 测试文档, 测试覆盖率, 测试计划, 漏洞验证, 烟雾测试, 电子商务安全, 端口扫描, 缺陷报告, 请求拦截, 质量控制, 防御加固