MuhaibShamsher/SSDD-CCA

GitHub: MuhaibShamsher/SSDD-CCA

一个基于 PHP/MySQL 的教学用漏洞靶场,通过漏洞版与安全版应用的对照和配套自动化测试,帮助学习者掌握五类常见 Web 安全漏洞的攻击原理与安全编码修复方法。

Stars: 1 | Forks: 0

# SSDD-CCA:安全软件设计与开发 **NED 工程技术大学 | CT-477 | 2026年春季** 通过构建一个包含5个预设漏洞及其修复方案的 PHP/MySQL Web 应用程序,展示安全编码实践,并提供自动化测试。 ## 1. 快速开始 (XAMPP) ``` Copy-Item -Recurse D:\SSDD-CCA\vuln-web-app C:\xampp\htdocs\ Copy-Item -Recurse D:\SSDD-CCA\secure-web-app C:\xampp\htdocs\ Copy-Item D:\SSDD-CCA\.env C:\xampp\htdocs\.env ``` 1. 打开 XAMPP 控制面板,启动 Apache 和 MySQL。 2. 通过 http://localhost/phpmyadmin 打开 phpMyAdmin。 3. 导入 `D:\SSDD-CCA\setup_databases.sql`。 4. 打开应用程序: - 漏洞版:http://localhost/vuln-web-app/login.php - 安全版:http://localhost/secure-web-app/login.php 5. 使用 `admin` / `admin123` 进行登录。 ## 2. 项目结构 ``` SSDD-CCA/ ├── .env, setup_databases.sql ├── vuln-web-app/ # Vulnerable version ├── secure-web-app/ # Fixed version └── tests/ # 5 automated tests + runner ├── run_all_tests.php ├── test_sql_injection.php ├── test_insecure_passwords.php ├── test_idor.php ├── test_xss.php ├── test_brute_force.php └── TESTS_README.md ``` ## 3. 交付物 - 包含5个预设漏洞的 Web 应用程序 - 修复了漏洞的安全 Web 应用程序 - 包含5个测试用例的自动化测试套件 - 数据库设置脚本 - 项目文档 - 待录制的演示视频 ## 4. 技术栈 - 后端:PHP 7.0+ - 数据库:MySQL / MariaDB - 前端:HTML5, CSS3 - 测试:cURL 和自动化 PHP 测试 ## 5. 凭证 两个应用程序的测试用户: - `admin` / `admin123` - `user1` / `password1` - `user2` / `password2` ## 6. 漏洞清单 (共5项) | # | 漏洞 | 漏洞文件 | 漏洞描述 | 攻击方式 | 修复方式 | | --- | ------------------------- | --------------------------- | -------------------------------------------------- | ---------------------------------------------------- | ------------------------------------------------- | | 1 | SQL 注入 | `vuln-web-app/login.php` | SQL 登录查询中使用了直接的字符串拼接 | 使用 `' OR '1'='1' -- ` 绕过身份验证 | 使用预处理语句 | | 2 | 不安全的密码存储 | `vuln-web-app/register.php` | 明文密码被存储并显示 | 读取数据库或配置文件输出以查看密码 | 使用 `password_hash()` 并且永远不要显示密码 | | 3 | IDOR | `vuln-web-app/profile.php` | 用户控制的 `id` 参数可以选择任意配置文件 | 修改 `profile.php?id=2` 来查看其他用户 | 使用已认证的会话用户 ID | | 4 | XSS | `vuln-web-app/form.php` | 评论输出未进行转义 | 在评论中提交 HTML 或 JavaScript | 在输出时使用 `htmlspecialchars()` | | 5 | 暴力破解 | `vuln-web-app/login.php` | 登录失败尝试次数无限制 | 发送重复的错误密码 | 增加速率限制和冷却时间追踪 | ### SQL 注入 - 漏洞文件:`vuln-web-app/login.php` - 漏洞描述:SQL 登录查询中使用了直接的字符串拼接 - 攻击方式:使用 `' OR '1'='1' -- ` 绕过身份验证 - 修复方式:使用预处理语句 ### 不安全的密码存储 - 漏洞文件:`vuln-web-app/register.php` - 漏洞描述:明文密码被存储并显示 - 攻击方式:读取数据库或配置文件输出以查看密码 - 修复方式:使用 `password_hash()` 并且永远不要显示密码 ### IDOR - 漏洞文件:`vuln-web-app/profile.php` - 漏洞描述:用户控制的 `id` 参数可以选择任意配置文件 - 攻击方式:修改 `profile.php?id=2` 来查看其他用户 - 修复方式:使用已认证的会话用户 ID ### XSS - 漏洞文件:`vuln-web-app/form.php` - 漏洞描述:评论输出未进行转义 - 攻击方式:在评论中提交 HTML 或 JavaScript - 修复方式:在输出时使用 `htmlspecialchars()` ### 暴力破解 - 漏洞文件:`vuln-web-app/login.php` - 漏洞描述:登录失败尝试次数无限制 - 攻击方式:发送重复的错误密码 - 修复方式:增加速率限制和冷却时间追踪 ## 7. 运行自动化测试 ``` cd D:\SSDD-CCA\tests php run_all_tests.php ``` 你也可以运行单个测试: ``` php test_sql_injection.php php test_insecure_passwords.php php test_idor.php php test_xss.php php test_brute_force.php ``` ## 8. 预期输出 以下示例输出显示了运行 `run_all_tests.php` 的结果。 要获取每个测试的详细输出,请单独运行各个测试脚本。 ``` ====================================================================== SSDD-CCA PROJECT - SECURITY VULNERABILITY TEST SUITE ====================================================================== [Running Test: SQL Injection] [PASS] TEST PASSED: Vulnerability confirmed in vulnerable app, fixed in secure app File: `test_sql_injection.php` [Running Test: Insecure Password Storage] [PASS] TEST PASSED: Vulnerability confirmed in vulnerable app, fixed in secure app File: `test_insecure_passwords.php` [Running Test: IDOR (Insecure Direct Object Reference)] [PASS] TEST PASSED: Vulnerability confirmed in vulnerable app, fixed in secure app File: `test_idor.php` [Running Test: Cross-Site Scripting (XSS)] [PASS] TEST PASSED: Vulnerability confirmed in vulnerable app, fixed in secure app File: `test_xss.php` [Running Test: Brute Force Attack] [PASS] TEST PASSED: Vulnerability confirmed in vulnerable app, fixed in secure app File: `test_brute_force.php` ====================================================================== TEST EXECUTION SUMMARY ====================================================================== [PASS] SQL Injection (`test_sql_injection.php`) [PASS] Insecure Password Storage (`test_insecure_passwords.php`) [PASS] IDOR (Insecure Direct Object Reference) (`test_idor.php`) [PASS] Cross-Site Scripting (XSS) (`test_xss.php`) [PASS] Brute Force Attack (`test_brute_force.php`) Results: 5 Passed | 0 Failed | 0 Errors (Total: 5) ====================================================================== [PASS] ALL TESTS PASSED! ``` ## 9. 学术信息 - 院校:NED 工程技术大学 - 院系:计算机科学与信息技术系 - 课程:CT-477 - 安全软件设计与开发 - 学期:2026年春季 - 提交截止日期:2026年5月17日
标签:CISA项目, CSS3, cURL, ffuf, HTML5, IDOR, OpenVAS, PHP, PoC, SSDD, TGT, Web安全, XAMPP, XSS, 不安全的直接对象引用, 安全培训, 安全教育, 安全编码, 安全软件开发, 弱口令, 攻防演练, 暴力破解, 漏洞情报, 漏洞靶场, 网络安全, 蓝队分析, 跨站脚本攻击, 防御检测, 隐私保护