kOaDT/oss-oopssec-store
GitHub: kOaDT/oss-oopssec-store
一个基于现代 Web 技术栈构建的故意包含漏洞的电商 CTF 靶场,用于实战学习 OWASP Top 10 等常见 Web 攻击向量。
Stars: 11 | Forks: 27
OSS - OopsSec Store
```
____ ____ ____ ____ ____ ____ _
/ __ \/ __// __/ / __ \ ___ ___ ___ / __/ ___ ____ / __/ / /_ ___ ____ ___
/ /_/ /\ \ _\ \ / /_/ // _ \ / _ \(_-<_\ \ / -_)/ __/_\ \ / __// _ \ / __// -_)
\____/___//___/ \____/ \___// .__/___/___/ \__/ \__//___/ \__/ \___//_/ \__/
/_/
# With Node.js
$ npx create-oss-store && cd oss-oopssec-store && npm start
# With Docker
$ docker run -p 3000:3000 leogra/oss-oopssec-store
→ Open http://localhost:3000 and start hacking
```
一个故意包含漏洞的电商应用,用于学习 Web 安全。
通过逼真的 Capture The Flag 平台掌握现实世界的攻击向量。寻找 flag,利用漏洞,提升你的安全技能。
贡献指南 | 路线图 | 新手问题 | 攻略 | Docker Hub
[](https://github.com/kOaDT/oss-oopssec-store/blob/main/LICENSE)
[](https://www.npmjs.com/package/create-oss-store)
[](https://www.npmjs.com/package/create-oss-store)
[](https://github.com/kOaDT/oss-oopssec-store/issues) [](https://github.com/kOaDT/oss-oopssec-store/pulls) [](https://github.com/users/kOaDT/projects/3/views/6) 
[](https://github.com/kOaDT/oss-oopssec-store/stargazers) [](https://github.com/kOaDT/oss-oopssec-store/network)
## 目录
- [功能特性](#features)
- [安装](#installation)
- [快速开始](#quick-start)
- [Docker](#docker)
- [名人堂](#hall-of-fame)
- [项目结构](#project-structure)
- [近期动态](#recent-activity)
- [测试](#testing)
- [免责声明](#disclaimer)
- [贡献](#contributing)
- [顶级贡献者](#top-contributors)
OSS – OopsSec Store 是一个充满安全漏洞的虚假在线商店,这是故意的。它基于 Next.js、React 和 Prisma 构建,涵盖了常见的漏洞类型:OWASP Top 10、API 缺陷、前端攻击向量。
每个漏洞都藏有一个 flag。找到 bug,利用它,夺取 flag。如果卡住了,我们也提供了攻略。
## 功能特性
- 故意包含漏洞的电商应用(XSS、CSRF、IDOR、JWT 攻击、路径遍历、SQL 注入等)
- 基于 Next.js、React、Prisma 和 SQLite 构建
- 带有记录攻击向量的 REST API
- 包含隐藏 flag 的 CTF 挑战
- 针对每个挑战的漏洞文档和社区攻略
- 自动化测试用于验证漏洞利用仍然有效(意外修复了漏洞的 PR 将无法通过 CI)
## 安装
### 快速开始
```
npx create-oss-store my-ctf-lab
cd my-ctf-lab
npm start
```
然后在浏览器中打开 http://localhost:3000。
### 手动设置
克隆仓库并运行设置脚本:
```
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
npm run setup
```
这将创建 `.env` 文件,安装依赖项,设置 SQLite 数据库,植入 CTF flag,并在端口 3000 上启动应用。
### Docker
无需 Node.js。只需要 [Docker](https://docs.docker.com/get-docker/)。
#### 从 Docker Hub 拉取(最快)
```
docker run -p 3000:3000 leogra/oss-oopssec-store
```
若要在重启后保留数据:
```
docker run -p 3000:3000 -v oss-data:/app/data leogra/oss-oopssec-store
```
#### 从源码构建
```
git clone https://github.com/kOaDT/oss-oopssec-store.git
cd oss-oopssec-store
docker compose up -d
```
或使用 npm 辅助脚本:
```
npm run docker:up # Start in background (builds image on first run)
npm run docker:logs # Follow container logs
npm run docker:down # Stop the container
npm run docker:reset # Wipe data and restart fresh
```
数据库在首次启动时初始化。数据通过 Docker 命名卷在重启后保留。要重置所有内容(flag 进度、用户、上传文件),请运行 `npm run docker:reset`。
### 名人堂
找到了所有的 flag?提交一个 Pull Request 来加入 [名人堂](hall-of-fame/data.json)。将你的条目添加到 `hall-of-fame/data.json`,你的个人资料将显示在应用的 `/hall-of-fame` 页面上。
## 项目结构
[](https://github.com/kOaDT/oss-oopssec-store/issues) [](https://github.com/kOaDT/oss-oopssec-store/pulls) [](https://github.com/users/kOaDT/projects/3/views/6) 
[](https://github.com/kOaDT/oss-oopssec-store/stargazers) [](https://github.com/kOaDT/oss-oopssec-store/network)
[](https://github.com/kOaDT/oss-oopssec-store)
| 文件夹 | 描述 |
| -------------------------- | -------------------------------------------------------------- |
| `app/` | Next.js App Router:页面、API 路由、React 组件 |
| `app/api/` | REST API 端点(认证、购物车、订单、商品、flag 等) |
| `app/components/` | React UI 组件(Header、Footer、ProductCard 等) |
| `app/vulnerabilities/` | 记录每个漏洞的页面 |
| `content/vulnerabilities/` | 漏洞和攻击向量的 Markdown 描述 |
| `lib/` | 共享工具:DB 客户端、认证、API 辅助函数、类型 |
| `prisma/` | 数据库 schema、迁移和包含 CTF flag 的种子脚本 |
| `public/` | 静态资源和利用 payload(例如 CSRF 演示) |
| `hooks/` | 自定义 React hooks(认证等) |
| `scripts/` | 设置和自动化脚本 |
| `docs/` | 包含社区攻略的静态文档站点 |
| `hall-of-fame/` | 找到所有 flag 的玩家档案 |
| `packages/` | 用于脚手架搭建的 NPM 包 `create-oss-store` |
| `tests/` | 用于验证利用的 Jest 单元和 API 测试 |
| `cypress/` | 用于完整利用流程的 E2E 测试 |
## 近期动态 [](https://repography.com)
[](https://github.com/kOaDT/oss-oopssec-store/commits)
[](https://github.com/kOaDT/oss-oopssec-store/commits)
[](https://github.com/kOaDT/oss-oopssec-store/issues)
[](https://github.com/kOaDT/oss-oopssec-store/pulls)
## 测试
项目包含安全回归测试,确保所有利用链和 flag 仍然有效。这些测试特意验证不安全的行为。它们会在每个 PR 上运行,所以如果你意外修补了一个漏洞,CI 会检测到它。
### 运行测试
```
# 单元测试 (工具函数:MD5 hashing, JWT, input filters)
npm run test:unit
# API exploitation 测试 (需要运行服务器)
npm run test:api
# E2E exploitation 测试 (需要运行服务器)
npm run test:e2e
# 打开 Cypress 交互模式
npm run test:e2e:open
# 所有测试
npm run test:ci
```
## 免责声明标签:CISA项目, CTF平台, DNS 反向解析, DNS解析, Docker, GNU通用公共许可证, Hackable, HTTP工具, MITM代理, Node.js, OWASP Top 10, React, Syscalls, Web安全, 安全教育, 安全防御评估, 实战演练, 开源项目, 攻击模拟, 故意漏洞, 漏洞靶场, 电子商城, 网络安全, 网络安全审计, 自动化攻击, 自动化攻击, 蓝队分析, 请求拦截, 防御检测, 隐私保护, 驱动签名利用