careb36/CentralBank-SecLand-Vulnerable

GitHub: careb36/CentralBank-SecLand-Vulnerable

一个基于Spring Boot构建的故意包含漏洞的网上银行应用,用于道德黑客研究、渗透测试实践和AI驱动的日志分析研究。

Stars: 2 | Forks: 1

# BancoCentral-SecLand-Vulnerable – 道德黑客实验室 本代码库包含 **"Banco Central de SecLand"** 的源代码,这是一个使用 Spring Boot (Java) 和 PostgreSQL 构建的刻意包含漏洞的网上银行应用程序。本项目的主要目标是作为**道德黑客研究和实践的实验室**,并作为硕士论文 (TFM) 的一部分,开发一个基于人工智能 (AI) 的异常检测模块。 ## 目录 1. [项目目标](#project-objective) 2. [已实现的功能](#implemented-features) 3. [漏洞与安全实践](#vulnerabilities-and-security-practices) 4. [使用的技术](#technologies-used) 5. [如何开始](#how-to-get-started) 6. [API 接口](#api-endpoints) 7. [示例数据](#sample-data) 8. [许可证](#license) ## 项目目标 本项目旨在提供一个可控环境,以: * 使用 **Kali Linux** 对常见的银行功能进行渗透测试。 * 研究并利用在代码和业务逻辑中故意引入的安全漏洞。 * 收集详细日志,用于训练和验证基于 AI 的异常检测模型。 * 作为硕士论文的原创研究平台,确保其漏洞不存在公开的“解决方案”。 ## 已实现的功能 * **用户管理:** 客户注册和身份验证。 * **账户管理:** 创建储蓄账户和支票账户。 * **交易:** 账户间的资金转账。 * **RESTful API:** 所有功能通过 REST API 暴露。 * **混合安全性:** 结合了稳健的安全实践与故意引入的漏洞。 ## 漏洞与安全实践 为了教学目的,该应用程序采用了混合安全态势设计。 ### 故意引入的漏洞 * **A05:2021-失效的访问控制 (IDOR):** 转账接口 (`/api/accounts/transfer`) 存在 **不安全的直接对象引用 (IDOR)** 漏洞。它不检查认证用户是否拥有 `sourceAccountId`,允许攻击者仅通过知道 ID 就可以从任何账户转账资金。 * **业务逻辑缺陷:** 转账功能不验证源账户是否有足够资金,允许账户余额为负。 ### 实施的安全实践(反面示例) * **A02:2021-加密失败:** 为防止凭证泄露,系统**不以纯文本存储密码**。所有密码在保存到数据库之前均使用 **BCrypt** 算法进行哈希处理,遵循行业最佳实践。 ## 使用的技术 * **后端:** Java 21, Spring Boot 3, Spring Security, Spring Data JPA * **数据库:** PostgreSQL 15 * **构建工具:** Maven * **容器化:** Docker, Docker Compose * **测试:** JUnit 5, Postman * **攻击平台:** Kali Linux ## 如何开始 项目已完全容器化,可轻松快速部署。 1. **前置条件:** * 已安装并运行 [Docker Desktop](https://www.docker.com/products/docker-desktop)。 * 一个 Git 客户端。 2. **克隆并运行:** # 克隆此 repository git clone https://github.com/careb36/BancoCentral-SecLand-Vulnerable.git # 进入 project directory cd BancoCentral-SecLand-Vulnerable # 使用 Docker Compose 启动 application 和 database # --build flag 确保编译最新版本的代码 docker-compose up --build 应用程序将可以通过 `http://localhost:8080` 访问。 ## API 接口 ### 身份验证 (`/api/auth`) * **注册新用户** * **接口:** `POST /api/auth/register` * **请求体:** { "username": "new_user", "password": "a_secure_password", "fullName": "Full Name" } * **登录** * **接口:** `POST /api/auth/login` * **请求体:** { "username": "existing_user", "password": "your_password" } ### 账户 (`/api/accounts`) * **进行转账** * **接口:** `POST /api/accounts/transfer` * **请求体:** { "sourceAccountId": 101, "destinationAccountId": 201, "amount": 500.00, "description": "Test transfer" } ## 示例数据 数据库初始化了以下用于测试的用户和账户: | Entity | ID | Details | | :------ | :-: | :-------------------------------------------------------- | | User | 1 | `username`: **carolina_p**, `password`: **password123** | | User | 2 | `username`: **test_user**, `password`: **testpass** | | Account | 101 | Type: Savings, Balance: 5000.75, Owner: `carolina_p` | | Account | 102 | Type: Checking, Balance: 1250.00, Owner: `carolina_p` | | Account | 201 | Type: Savings, Balance: 800.50, Owner: `test_user` | ## 许可证 本项目采用 MIT 许可证授权。有关详细信息,请参阅 [LICENSE](https://github.com/careb36/careb36-BancoCentral-SecLand-Vulnerable/blob/main/LICENCE) 文件。
标签:AI安全, BurpSuite集成, Chat Copilot, CISA项目, IDOR, OWASP Top 10, PostgreSQL, RESTful API, Spring Boot, Web安全, 域名枚举, 异常检测, 提示词优化, 漏洞靶场, 版权保护, 硕士学位论文, 网络安全, 蓝队分析, 请求拦截, 越权访问, 银行系统, 防御检测, 隐私保护