aswinklari/custom-vulnerable-webapp-framework
GitHub: aswinklari/custom-vulnerable-webapp-framework
一个基于 Flask 的教育性脆弱 Web 应用框架,通过对比脆弱实现与安全实现来演示常见 Web 漏洞及其缓解措施。
Stars: 2 | Forks: 0
# CVWF
# 包含自动化利用与缓解框架的定制化脆弱 Web 应用




演示 SQL 注入、存储型 XSS 以及使用 Flask 进行安全编码实践的教育性脆弱 Web 应用。
一个基于 Flask 的教育性网络安全项目,演示了常见的 Web 应用漏洞及其安全缓解措施。该项目包含一个脆弱的新闻门户网站、一个安全实现以及一个用于对比不安全与安全编码实践的自动化攻击工具包。
## 概述
该项目模拟了一个名为 **The Chronicle** 的现代在线新闻平台,允许用户浏览文章、访问高级内容并发表评论。脆弱的实现出于教育目的故意包含了安全缺陷,而安全的实现则展示了工业标准的缓解技术。
该项目适用于:
- 网络安全教育
- 安全编码演示
- 在受控环境中进行渗透测试练习
- 学术研究与实验室练习
## 功能
### 脆弱应用
- 用户认证
- 高级会员登录
- 新闻流
- 分类筛选
- 文章查看
- 评论系统
- 高级文档库
- SQLite 数据库后端
### 演示的漏洞
- SQL 注入
- 存储型跨站脚本攻击 (XSS)
- 认证失效
- 会话管理薄弱
### 安全实现
- 参数化 SQL 查询
- bcrypt 密码哈希
- 输入验证
- 输出转义
- 安全认证
- 安全会话处理
| 功能 | 脆弱版 | 安全版 |
|---------|------------|--------|
| 登录 | ✅ | ✅ |
| SQL 注入 | ✅ | ❌ |
| 存储型 XSS | ✅ | ❌ |
| bcrypt 哈希 | ❌ | ✅ |
| 参数化查询 | ❌ | ✅ |
## 使用的技术
- Python 3
- Flask
- SQLite
- HTML5
- CSS3
- Jinja2
- bcrypt
- MarkupSafe
## 项目结构
```
Custom-Vulnerable-WebApp-Framework/
│
├── vulnerable_app/
│ ├── app.py
│ ├── init_db.py
│ ├── templates/
│ └── newsdb.db
│
├── secure_app/
│ ├── secure_app.py
│ └── newsdb_secure.db
│
├── attacker/
│ └── attacker.py
│
├── screenshots/
├── diagrams/
├── report/
│
├── requirements.txt
├── README.md
└── LICENSE
```
## 教育目标
该项目演示了:
- 识别常见的 Web 漏洞
- 安全的认证机制
- 安全的数据库交互
- 输入验证
- 输出编码
- 安全性对比分析
- 实用的安全软件开发
## 截图
### 登录页面

### 新闻流

### 高级门户

## 演示工作流
1. 初始化脆弱数据库
2. 启动脆弱应用
3. 演示 SQL 注入
4. 演示存储型 XSS
5. 运行自动化攻击工具包
6. 启动安全应用
7. 验证缓解措施
## 未来改进
- 基于角色的访问控制 (RBAC)
- CSRF 防护
- 多因素认证
- 审计日志
- 文件上传验证
- REST API
- Docker 部署
- JWT 认证
- 内容管理仪表板
## 免责声明
该项目出于教育和研究目的故意包含了脆弱代码。
它只能在受控的实验室环境中运行。所演示的技术仅旨在帮助学生和研究人员了解常见的 Web 应用漏洞及安全编码实践。
## 作者
**Aswin Manoj**
计算机科学与工程(网络安全)B.Tech
荣誉项目
## 许可证
该项目基于 MIT 许可证发布。
标签:CISA项目, Flask, OPA, Python, SQLite, Web安全, 后端开发, 安全, 无后门, 蓝队分析, 超时处理, 逆向工具, 靶场