# open-source-community-practice **Repository Path**: keonq/open-source-community-practice ## Basic Information - **Project Name**: open-source-community-practice - **Description**: 开源社区实践作业 - Web安全靶场 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 5 - **Created**: 2026-04-14 - **Last Updated**: 2026-06-30 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 开源社区实践 - Web安全靶场 ## 项目简介 本项目为"信息安全管理"课程的开源社区实践作业。我们以小组为单位,搭建并运营一个基于 **bWAPP (buggy Web Application)** 的Web安全学习环境,并围绕其中12个代表性关卡,每位成员独立编写了对应的安全检测/演示脚本。 bWAPP 是一个故意设计存在漏洞的PHP Web应用程序,包含超过100种Web安全漏洞,涵盖 SQL注入、XSS、CSRF、文件上传、命令注入、XXE 等 OWASP Top 10 常见漏洞类型。 ## 环境要求 - **操作系统**:Windows 10/11 - **Web服务器**:XAMPP 8.x(PHP 8.x + Apache + MySQL) - **Python**:Python 3.x(运行成员代码) - **浏览器**:Chrome、Firefox 或 Edge ## 目录结构 ``` . ├── README.md # 本说明文件 ├── README.en.md # 英文说明(Gitee规范) ├── 漏洞靶场/ # bWAPP靶场完整源码 │ └── bWAPP/ └── 成员代码/ # 每位成员的个人代码 ├── 成员CSH-SQL_SELECT与sql登录/ # 关卡2、关卡9 ├── 成员GPR-XSS_GET与任意上传/ # 关卡5、关卡12 ├── 成员QXY-XSS_POST与JSON处理/ # 关卡6、关卡7 ├── 成员ZDY-SQL_POST与命令注入/ # 关卡3、关卡10 ├── 成员ZXH-SQL_AJAX与XXE测试/ # 关卡4、关卡11 └── 成员ZYQ-SQL注入与CSRF测试/ # 关卡1、关卡8 ``` ## 靶场功能说明 本项目选取了 bWAPP 中的 **12个代表性关卡** 进行学习和实践,按漏洞类型分为三大类: ### 第一部分:SQL注入系列(关卡1-4) | 关卡 | 漏洞名称 | 难度 | 负责成员 | 说明 | |------|----------|------|----------|------| | 1 | SQL Injection (GET/Search) | 低 | ZYQ | 基础GET参数SQL注入,通过URL参数注入获取全部数据 | | 2 | SQL Injection (GET/Select) | 低 | CSH | SELECT语句注入,利用UNION联合查询提取数据库信息 | | 3 | SQL Injection (POST/Search) | 中 | ZDY | POST表单SQL注入,通过拦截修改HTTP请求体实现注入 | | 4 | SQL Injection (AJAX/JSON/jQuery) | 高 | ZXH | 异步请求SQL注入,从JavaScript代码中定位AJAX注入点 | ### 第二部分:XSS跨站脚本系列(关卡5-7) | 关卡 | 漏洞名称 | 难度 | 负责成员 | 说明 | |------|----------|------|----------|------| | 5 | XSS - Reflected (GET) | 低 | GPR | GET参数反射型XSS,检测URL中的脚本注入特征 | | 6 | XSS - Reflected (POST) | 中 | QXY | POST表单反射型XSS,检测表单数据中的XSS攻击模式 | | 7 | XSS - Reflected (JSON) | 中 | QXY | JSON格式XSS,演示JSON结构逃逸注入技巧 | ### 第三部分:其他漏洞类型(关卡8-12) | 关卡 | 漏洞名称 | 难度 | 负责成员 | 说明 | |------|----------|------|----------|------| | 8 | CSRF (Change Password) | 低 | ZYQ | 跨站请求伪造,检测敏感操作URL的CSRF风险等级 | | 9 | SQL Injection - Login Form | 中 | CSH | 登录表单SQL注入,汇总30种登录绕过Payload | | 10 | OS Command Injection | 高 | ZDY | 操作系统命令注入,检测Shell分隔符和23种系统命令 | | 11 | XXE (XML External Entity) | 高 | ZXH | XML外部实体注入,检测多种协议的文件读取攻击 | | 12 | Unrestricted File Upload | 高 | GPR | 任意文件上传,检测19种危险扩展名和上传绕过技巧 | ## 成员代码功能概览 每位成员针对所负责的关卡编写了安全检测/演示脚本,各子文件夹均包含:代码文件、README功能说明、测试运行日志、关卡截图。 ### 成员CSH — SQL SELECT注入与登录绕过(关卡2、关卡9) | 文件 | 功能说明 | |------|----------| | `sql_select_check.py` | 解析URL查询参数,检测UNION、ORDER BY等SQL SELECT注入特征,内置14条测试URL | | `sql_login_bypass.py` | 汇总展示20种GET和10种POST登录绕过Payload,演示万能密码、管理员绕过等攻击方式 | ### 成员GPR — XSS GET型检测与任意文件上传(关卡5、关卡12) | 文件 | 功能说明 | |------|----------| | `xss_get_check.py` | 检测URL GET参数中的13种XSS攻击模式(script标签、事件处理器、编码绕过等),内置15条测试URL | | `upload_unrestricted_check.py` | 维护19种危险扩展名黑名单,演示18种文件上传绕过技巧(双后缀、大小写、空字节截断等) | | `webshell.php` | 最小化PHP Webshell概念验证,演示文件上传漏洞的实际危害 | ### 成员QXY — XSS POST型与JSON格式检测(关卡6、关卡7) | 文件 | 功能说明 | |------|----------| | `xss_post_check.py` | 解析POST表单数据并自动URL解码,检测14种XSS模式(script、事件处理器、媒体标签等),内置18条测试数据 | | `json_xss_check.py` | 扫描JSON字符串中的XSS模式,提供`escape_xss()`转义防御函数,演示JSON结构逃逸注入技巧 | ### 成员ZDY — SQL POST注入与命令注入检测(关卡3、关卡10) | 文件 | 功能说明 | |------|----------| | `sql_post_check.py` | 检测POST表单数据中的SQL注入关键字(OR、UNION、SELECT、INSERT、DELETE等),内置13条测试数据 | | `command_injection_check.py` | 检测输入中的Shell分隔符和23种危险系统命令(whoami、cat、wget、sudo等),内置19条测试输入 | ### 成员ZXH — AJAX SQL注入与XXE检测(关卡4、关卡11) | 文件 | 功能说明 | |------|----------| | `sql_ajax_check.py` | 用正则从JavaScript代码中提取AJAX请求URL,再扫描URL中的SQL注入特征,内置10段JS代码样本 | | `xxe_check.py` | 检测XML中的外部实体注入特征(ENTITY声明、SYSTEM关键字、file/http/php/ftp等协议),内置10条XML样本 | ### 成员ZYQ — SQL注入与CSRF检测(关卡1、关卡8) | 文件 | 功能说明 | |------|----------| | `sql_injection_check.py` | 检测URL参数中的SQL注入危险关键字(引号、UNION、SELECT等),输出安全/有风险判定,内置10条测试URL | | `csrf_test.py` | 分析URL参数中的敏感关键字(password、money、delete等),按高危/中危/低危三级评估CSRF风险 | ## 快速开始 ### 1. 部署bWAPP靶场 1. 安装 XAMPP,启动 Apache 和 MySQL 服务 2. 将 `漏洞靶场/bWAPP/bWAPP/` 目录复制到 XAMPP 的 `htdocs` 目录下 3. 浏览器访问 `http://localhost/bWAPP/install.php` 初始化数据库 4. 访问 `http://localhost/bWAPP/login.php`,使用默认账号 `bee` / 密码 `bug` 登录 5. 在"Select your bug"下拉菜单中选择关卡,点击"Hack"进入 ### 2. 运行成员代码 进入任意成员的子文件夹,直接运行 Python 脚本即可查看检测结果: ```bash cd 成员代码/成员CSH-SQL_SELECT与sql登录 python sql_select_check.py python sql_login_bypass.py ``` 每个成员文件夹下均有详细的 README 和测试日志可供参考。 ## 安全登录注册模块 在已有成员检测脚本的基础上,本仓库新增了可运行的 `安全登录注册模块/`,针对 `sql_login_bypass.py` 中演示的登录绕过、明文口令、未授权访问、暴力破解等问题,落实了参数化查询、口令加盐哈希、服务端输入校验、会话与权限校验、失败锁定与安全错误响应等安全控制。运行方式:进入 `安全登录注册模块/` 目录后执行 `python app.py`,浏览器访问 `http://127.0.0.1:8000/`。安全管理过程文档见 `docs/`,扫描与整改前后对比见 `reports/`。 ## 注意事项 1. 本靶场 **仅用于学习和教育目的** 2. 不要在生产环境或公网服务器上部署 bWAPP 3. 发现漏洞请仅用于学习,不要用于非法用途 ## 参考资料 - bWAPP 项目:https://github.com/raesene/bWAPP - OWASP Top 10:https://owasp.org/www-project-top-ten/ - XAMPP 官网:https://www.apachefriends.org/