dev-rahulmandal/Project-Management_DVWA

GitHub: dev-rahulmandal/Project-Management_DVWA

一款基于 Next.js 14 与 FastAPI 构建的现代化、刻意包含漏洞的 API 优先 Web 应用,用于 Web/API 安全培训和渗透测试回归测试。

Stars: 0 | Forks: 0

# 项目管理 DVWA 一款现代化的、刻意包含漏洞的、API 优先的 Web 应用程序,用于进行 Web 和 API 安全的实操培训——同时也是渗透测试和扫描器 pipeline 的可衡量回归测试目标。 [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE) [![Python 3.11+](https://img.shields.io/badge/Python-3.11%2B-3776AB?logo=python&logoColor=white)](https://www.python.org/) [![FastAPI](https://img.shields.io/badge/FastAPI-009688?logo=fastapi&logoColor=white)](https://fastapi.tiangolo.com/) [![Next.js 14](https://img.shields.io/badge/Next.js-14-000000?logo=nextdotjs&logoColor=white)](https://nextjs.org/) [![TypeScript](https://img.shields.io/badge/TypeScript-3178C6?logo=typescript&logoColor=white)](https://www.typescriptlang.org/) [![Status: in development](https://img.shields.io/badge/status-in%20development-orange.svg)](#) ## 这是什么? 项目管理 DVWA 是一个**刻意包含漏洞的 Web 应用程序**和**包含漏洞的 API**——一个真实的、植入了有意安全缺陷的项目和任务管理 SaaS,作为**现代版的 DVWA 替代方案**构建。经典的教学应用(DVWA、bWAPP、OWASP WebGoat、Mutillidae)都是 2013 年左右的 PHP/Java 表单应用。相反,本项目以 **OWASP API 安全 Top 10 (2023)** 以及 OWASP Web Top 10 (2021) 和当前的攻击技术为目标,为您提供了一个真实的 **API 渗透测试实验室**和一个反映当今软件实际构建方式的 **Web 安全培训**基地——涵盖 **IDOR、BOLA、SSRF、JWT** 缺陷等等。 它**特意**以**两个不同的源**发布:运行在 `http://localhost:8082` 上的 `web` 源(Next.js 14,App Router,TypeScript),用于签发 httpOnly session cookie;以及运行在 `http://localhost:8081` 上的 `api` 源(FastAPI,Python),使用 Bearer JWT 进行身份验证。浏览器先登录 `web`,然后将其 session cookie 换取 `api` 的 Bearer token——一个跨主机的 cookie 到 Bearer 的桥接,这正是真实的 IDOR、BOLA、SSRF 或 JWT 缺陷所依赖的攻击面。 每个已编目的漏洞都配有一个安全的“孪生”版本作为阴性对照。该目录是针对机器可读的真相清单(ground-truth manifest)进行维护的——它是一份答案 key,同时也用作扫描器和渗透测试自动化的回归测试 fixture——该清单被保留在公共仓库之外,以免破坏练习的体验。 ## 漏洞覆盖范围 - **访问控制:** BOLA/IDOR、破损的功能级授权 (BFLA)、批量赋值 / BOPLA、过度数据暴露 - **SSRF:** 经典 SSRF、针对云元数据的 SSRF,以及通过 OAuth 动态客户端注册引发的二阶 SSRF - **注入:** SQL 注入(位于基于特征签名的 WAF 之后)、导致 RCE 的服务端模板注入 (SSTI)、OS 命令注入、不安全的反序列化、路径遍历 - **身份验证与 token:** JWT 攻击(弱 HMAC 密钥、`alg:none`、内嵌 JWK header)、OAuth2/OIDC 缺陷(PKCE 降级、宽松的 `redirect_uri`)、SCIM 配置滥用、无速率限制的暴力破解 - **集成与逻辑:** webhook SSRF / 重放 / 签名绕过、竞态条件 (TOCTOU)、业务逻辑滥用(退款/优惠券/座位限制) - **客户端与 Web:** 存储型和基于 DOM 的 XSS、原型链污染、JS bundle 中的机密信息泄露、CORS 配置错误、点击劫持、开放重定向 - **实时通信:** WebSocket BOLA/BFLA 此外,还包含用于诱饵扫描器的诱饵 endpoint 以及双面(实验室 vs 挑战)构建版本。 ## 技术栈 Python 3.11+、FastAPI、Next.js 14 (App Router, TypeScript)、SQLite(确定性种子数据)。Web 位于 `http://localhost:8082`,API 位于 `http://localhost:8081`。 ## 快速开始 需要 **Python 3.11+** 和 **Node.js 18.17+**。一条跨平台命令即可安装所有依赖并运行两个服务器(在 macOS/Linux 上,如果缺少 `python` 命令,请使用 `python3`): ``` git clone https://github.com/dev-rahulmandal/Project-Management_DVWA.git cd Project-Management_DVWA python run.py ``` 首次运行时,`run.py` 会安装 Python 和 Web 依赖项,并为本地 `.env` 文件注入种子数据,然后启动: - **api** (FastAPI) 位于 http://localhost:8081 - **web** (Next.js) 位于 http://localhost:8082 打开 http://localhost:8082 并使用下方的种子账号登录。按 Ctrl-C 停止两个服务器。`python run.py` 会运行真实的默认界面;添加 `python run.py --lab` 可进入开发/实验室模式(包含应用内的安全代码对比和 API 文档)。 ### 使用 Docker 运行 更喜欢容器?有了 [Docker](https://docs.docker.com/get-docker/) 和 Compose v2 插件,一条命令即可构建并运行整个系统——主机上无需安装 Python 或 Node: ``` git clone https://github.com/dev-rahulmandal/Project-Management_DVWA.git cd Project-Management_DVWA docker compose up --build ``` 打开 http://localhost:8082,然后按 Ctrl-C 停止并运行 `docker compose down` 来移除容器。SQLite 数据库在每次运行时都会在容器内全新生成——这是特意设计为短暂的,因此每次 `up` 都会从一个干净、确定性的答案 key 开始。端口仅发布到 `127.0.0.1`。
手动设置(不使用启动器) ``` pip install -r api/requirements.txt cd web && npm install && cd .. cp api/.env.example api/.env cp web/.env.example web/.env.local python -m uvicorn api.main:app --port 8081 --reload # api -> http://localhost:8081 cd web && npm run dev # web -> http://localhost:8082 ```
## 种子账号 两个租户加上一个超级管理员,用于实现跨租户和访问控制失效缺陷。所有密码均为 `Password1!`。 | Email | Tenant | Role | | --- | --- | --- | | alice@northwind.test | Northwind Systems | Owner | | charlie@northwind.test | Northwind Systems | Member | | bob@bluepeak.test | Bluepeak Labs | Owner | | diana@bluepeak.test | Bluepeak Labs | Member | | marcus.webb@northwind.test | Northwind Systems | Owner + Super-admin | ## 报告 本项目中的漏洞是**故意的**——请不要将它们作为安全问题进行报告。如果您在应用程序脚手架、启动器或文档中发现了真正的缺陷(而不是那些预设的漏洞),请参阅 [SECURITY.md](SECURITY.md)。 ## 许可证 MIT - 参见 [LICENSE](LICENSE)。
标签:API安全, AV绕过, FastAPI, JSON输出, Web安全, 安全靶场, 自动化攻击, 蓝队分析, 请求拦截, 逆向工具