zhuifengshaonianhanlu/MadRabbit
GitHub: zhuifengshaonianhanlu/MadRabbit
MadRabbit 是一个基于 Java + Spring Boot 构建的 Web 安全漏洞靶场平台,为安全学习者提供覆盖 13 大类、50+ 关卡的漏洞实战练习环境。
Stars: 28 | Forks: 2
**[中文](README_ZH.md)** | English
# MadRabbit:一个 Web 安全漏洞靶场平台
     
## 1. 简介
MadRabbit 是一个专为 Web 安全学习者和研究人员量身定制的漏洞靶场系统,涵盖 13 个常见的 Web 漏洞类别,每个类别均包含围绕不同业务场景构建的多个挑战关卡。通过研究和实践这些漏洞,您将成为一名合格且充满热情的网络安全工程师。
👋[WIKI](https://madrabbit-vul.github.io/wiki/)
### 1.1 一点说明 在 AI 一个月就能发现 10,000+ 个漏洞的时代,学习漏洞的底层原理还有用吗? 答案很简单:在面试安全工程师职位时,那些深刻理解漏洞原理的候选人会被选中——而不是那些只知道如何使用工具的人。 **你的认知决定了你的工作方式。不要做脚本小子,也不要做 AI 小子。** ### 1.2 漏洞类别 本平台涵盖了以下 13 个 Web 安全漏洞类别,包含 50+ 个挑战关卡: | 类别 | 描述 | |----------|-------------| | 身份认证与会话管理 | 暴力破解、JWT 安全、密码重置缺陷 | | SQL Injection | 登录绕过、UNION 注入、MyBatis 注入、盲注 | | XXE | 文件读取、OOB 数据外带、Content-Type 切换 | | XSS | 反射型、存储型、DOM-based XSS | | CSRF | GET/POST 型 CSRF、token 绕过 | | SSRF | 基础 SSRF、协议封装、绕过技术、重定向链 | | RCE | 命令注入、代码执行、绕过技术 | | 访问控制 | 水平/垂直越权、IDOR | | 文件操作 | 文件上传、路径遍历、文件包含 | | 反序列化 | Java 原生反序列化、Fastjson RCE、Log4Shell | | 安全配置 | Actuator 暴露、Swagger 泄露 | | 敏感信息泄露 | 报错泄露、Git 暴露、硬编码 secrets | | 业务逻辑 | 越权券滥用、价格篡改、流程跳过 | ## 2. 前置条件 在部署之前,请确保已安装以下软件: | 依赖 | 最低版本 | 用途 | 验证方式 | |------------|----------------|---------|--------| | JDK | 17+ | 运行环境 | `java -version` | | Maven | 3.6+ | 构建 | `mvn -version` | | MySQL | 8.0+ | 数据库 | `mysql --version` | | IDE | 任意 | 源码调试 | 您喜欢的 IDE | ## 3. 从源码部署 ### 3.1 克隆仓库 ``` git clone https://github.com/zhuifengshaonianhanlu/MadRabbit.git cd MadRabbit ``` ### 3.2 启动 MySQL 并创建数据库 确保 MySQL 服务正在运行: ``` # macOS (Homebrew) brew services start mysql # Linux (systemd) sudo systemctl start mysql # 验证连接 mysql -u root -p -e "SELECT VERSION();" ``` 运行一键初始化脚本来创建数据库、所有表并写入种子数据: ``` mysql -u root -p < sql/install_init.sql ``` 该脚本将自动执行以下操作: - 创建 `madrabbit` 数据库(UTF-8MB4 编码) - 创建 6 个业务表(users、flags、challenge_users、logs_access、logs_error、merchant_orders) - 写入所有初始数据(用户、挑战 flag、注入数据、授权订单数据等) 验证初始化结果: ``` mysql -u root -p madrabbit -e "SHOW TABLES; SELECT COUNT(*) AS user_count FROM users; SELECT COUNT(*) AS flag_count FROM flags;" ``` 预期输出:6 个表,6 个用户,50+ 条 flag 记录。 ### 3.3 配置数据库连接 编辑 `src/main/resources/application.yml` 并更新数据库连接信息: ``` spring: datasource: url: jdbc:mysql://127.0.0.1:3306/madrabbit?useSSL=false&serverTimezone=UTC&characterEncoding=utf8 username: YOUR_DB_USERNAME # Your MySQL username password: YOUR_DB_PASSWORD # Your MySQL password ``` ### 3.4 构建项目 ``` mvn clean package -DskipTests ``` 首次构建将下载依赖项,可能需要一些时间。构建成功后,`madrabbit-1.0.0.jar` 文件将生成在 `target/` 目录中。 ### 3.5 启动应用 **方式一:使用 Maven 运行(推荐用于开发)** ``` mvn spring-boot:run ``` **方式二:运行 JAR 包(推荐用于部署)** ``` java -jar target/madrabbit-1.0.0.jar ``` ### 3.6 验证部署 启动成功后,您应该会看到: ``` Started MadrabbitApplication in X.XXX seconds ``` 访问以下 URL 以确认服务正在运行: | URL | 描述 | |-----|-------------| | http://localhost:8080/login.html | 登录页面 | ## 4. 默认测试账号 | 用户名 | 密码 | 角色 | |----------|----------|------| | admin | 123456 | ADMIN | | jack | 123456 | LEARNER | | lucy | 123456 | LEARNER | | tom | 123456 | LEARNER | 登录后即可浏览漏洞类别并进入挑战关卡。 ## 5. 技术栈 - **后端**:Java 17 + Spring Boot 2.7 + MyBatis - **数据库**:MySQL 8.0+ - **前端**:HTML + CSS + JavaScript (原生) - **构建工具**:Maven ## 6. 安全警告 ## 7. 许可证 本项目采用自定义许可证。详情请参阅 [LICENSE](LICENSE) 文件。 - 免费用于个人学习和教育培训目的 - **未经事先书面授权,严禁**:修改、商业用途、衍生作品或重新分发
### 1.1 一点说明 在 AI 一个月就能发现 10,000+ 个漏洞的时代,学习漏洞的底层原理还有用吗? 答案很简单:在面试安全工程师职位时,那些深刻理解漏洞原理的候选人会被选中——而不是那些只知道如何使用工具的人。 **你的认知决定了你的工作方式。不要做脚本小子,也不要做 AI 小子。** ### 1.2 漏洞类别 本平台涵盖了以下 13 个 Web 安全漏洞类别,包含 50+ 个挑战关卡: | 类别 | 描述 | |----------|-------------| | 身份认证与会话管理 | 暴力破解、JWT 安全、密码重置缺陷 | | SQL Injection | 登录绕过、UNION 注入、MyBatis 注入、盲注 | | XXE | 文件读取、OOB 数据外带、Content-Type 切换 | | XSS | 反射型、存储型、DOM-based XSS | | CSRF | GET/POST 型 CSRF、token 绕过 | | SSRF | 基础 SSRF、协议封装、绕过技术、重定向链 | | RCE | 命令注入、代码执行、绕过技术 | | 访问控制 | 水平/垂直越权、IDOR | | 文件操作 | 文件上传、路径遍历、文件包含 | | 反序列化 | Java 原生反序列化、Fastjson RCE、Log4Shell | | 安全配置 | Actuator 暴露、Swagger 泄露 | | 敏感信息泄露 | 报错泄露、Git 暴露、硬编码 secrets | | 业务逻辑 | 越权券滥用、价格篡改、流程跳过 | ## 2. 前置条件 在部署之前,请确保已安装以下软件: | 依赖 | 最低版本 | 用途 | 验证方式 | |------------|----------------|---------|--------| | JDK | 17+ | 运行环境 | `java -version` | | Maven | 3.6+ | 构建 | `mvn -version` | | MySQL | 8.0+ | 数据库 | `mysql --version` | | IDE | 任意 | 源码调试 | 您喜欢的 IDE | ## 3. 从源码部署 ### 3.1 克隆仓库 ``` git clone https://github.com/zhuifengshaonianhanlu/MadRabbit.git cd MadRabbit ``` ### 3.2 启动 MySQL 并创建数据库 确保 MySQL 服务正在运行: ``` # macOS (Homebrew) brew services start mysql # Linux (systemd) sudo systemctl start mysql # 验证连接 mysql -u root -p -e "SELECT VERSION();" ``` 运行一键初始化脚本来创建数据库、所有表并写入种子数据: ``` mysql -u root -p < sql/install_init.sql ``` 该脚本将自动执行以下操作: - 创建 `madrabbit` 数据库(UTF-8MB4 编码) - 创建 6 个业务表(users、flags、challenge_users、logs_access、logs_error、merchant_orders) - 写入所有初始数据(用户、挑战 flag、注入数据、授权订单数据等) 验证初始化结果: ``` mysql -u root -p madrabbit -e "SHOW TABLES; SELECT COUNT(*) AS user_count FROM users; SELECT COUNT(*) AS flag_count FROM flags;" ``` 预期输出:6 个表,6 个用户,50+ 条 flag 记录。 ### 3.3 配置数据库连接 编辑 `src/main/resources/application.yml` 并更新数据库连接信息: ``` spring: datasource: url: jdbc:mysql://127.0.0.1:3306/madrabbit?useSSL=false&serverTimezone=UTC&characterEncoding=utf8 username: YOUR_DB_USERNAME # Your MySQL username password: YOUR_DB_PASSWORD # Your MySQL password ``` ### 3.4 构建项目 ``` mvn clean package -DskipTests ``` 首次构建将下载依赖项,可能需要一些时间。构建成功后,`madrabbit-1.0.0.jar` 文件将生成在 `target/` 目录中。 ### 3.5 启动应用 **方式一:使用 Maven 运行(推荐用于开发)** ``` mvn spring-boot:run ``` **方式二:运行 JAR 包(推荐用于部署)** ``` java -jar target/madrabbit-1.0.0.jar ``` ### 3.6 验证部署 启动成功后,您应该会看到: ``` Started MadrabbitApplication in X.XXX seconds ``` 访问以下 URL 以确认服务正在运行: | URL | 描述 | |-----|-------------| | http://localhost:8080/login.html | 登录页面 | ## 4. 默认测试账号 | 用户名 | 密码 | 角色 | |----------|----------|------| | admin | 123456 | ADMIN | | jack | 123456 | LEARNER | | lucy | 123456 | LEARNER | | tom | 123456 | LEARNER | 登录后即可浏览漏洞类别并进入挑战关卡。 ## 5. 技术栈 - **后端**:Java 17 + Spring Boot 2.7 + MyBatis - **数据库**:MySQL 8.0+ - **前端**:HTML + CSS + JavaScript (原生) - **构建工具**:Maven ## 6. 安全警告 ## 7. 许可证 本项目采用自定义许可证。详情请参阅 [LICENSE](LICENSE) 文件。 - 免费用于个人学习和教育培训目的 - **未经事先书面授权,严禁**:修改、商业用途、衍生作品或重新分发
保持热情,保持好奇。❤️🔥
标签:Spring Boot, Web安全, 域名枚举, 多模态安全, 数据可视化, 漏洞训练, 网络安全, 蓝队分析, 隐私保护, 靶场系统