abieltesfai10-rgb/secure-web-app-attack-simulation
GitHub: abieltesfai10-rgb/secure-web-app-attack-simulation
一个结合攻击利用与防御修复的 Web 安全模拟靶场,通过 Flask 演示 SQL 注入、暴力破解等漏洞的成因及代码级修复方案。
Stars: 0 | Forks: 0
# 安全 Web 应用程序 — 攻击与防御模拟
一个注重实践的应用程序安全项目,演示了常见的 Web 漏洞是如何被利用和修复的。该应用程序使用 Python 和 Flask 构建,模拟了一次真实的渗透测试过程:识别漏洞、利用漏洞、修复漏洞并验证修复结果。
## 演示的漏洞
| 漏洞 | CWE | 状态 |
|---|---|---|
| SQL 注入(身份验证绕过) | CWE-89 | ✅ 已利用与已修复 |
| 暴力破解攻击 | CWE-307 | ✅ 已检测与已缓解 |
| 明文密码存储 | CWE-256 | ✅ 已使用 bcrypt 修复 |
| 不安全的会话处理 | CWE-384 | ✅ 已修复 |
| 缺失访问控制 | CWE-284 | ✅ 已修复 |
## 攻击演练
### SQL 注入 — 身份验证绕过
最初存在漏洞的查询直接接收了原始的用户输入:
```
# 易受攻击 — 字符串拼接
query = "SELECT * FROM users WHERE username = '" + username + "' AND password = '" + password + "'"
```
这允许使用经典的 payload 绕过身份验证:
用户名: admin' OR '1'='1' --
密码: anything
### 应用的修复措施
```
# 安全 — 参数化查询
cursor.execute("SELECT * FROM users WHERE username = ?", (username,))
```
输入被严格作为数据处理,绝对不会作为可执行的 SQL。
## 实施的安全控制
**密码安全**
- 使用 bcrypt 对密码进行哈希处理 —— 消除了明文存储
- 登录时进行安全的密码验证
**会话管理**
- 基于会话的身份验证,包含受保护的路由
- 注销功能会清除会话数据
- 仪表盘仅限已通过身份验证的用户访问
**暴力破解防护**
- 5 次登录失败后锁定账户
- 防止自动化的撞库攻击
**检测与监控(SIEM 风格)**
- 记录所有身份验证事件,包含:用户名、成功/失败状态、失败原因、IP 地址、时间戳
- 超过阈值时触发暴力破解警报
- `/logs` 端点仅限管理员用户访问
## 技术栈
- **后端:** Python, Flask
- **数据库:** SQLite
- **安全:** bcrypt,参数化查询,会话控制
- **测试:** Burp Suite(HTTP 拦截与 payload 投递)
## 项目结构
secure-web-app-attack-simulation/
├── app.py # Flask 主应用程序
├── database.py # 数据库设置与查询逻辑
├── view_logs.py # 日志查看器(仅限管理员)
└── templates/
├── login.html
├── dashboard.html
└── logs.html
## 如何运行
```
# 1. 安装依赖
pip install flask bcrypt
# 2. 初始化数据库
python database.py
# 3. 运行应用程序
python app.py
# 4. 在浏览器中打开
http://127.0.0.1:5000
```
## 测试场景
| 场景 | 步骤 | 预期结果 |
|---|---|---|
| 有效登录 | 输入正确的凭据 | 重定向至仪表盘 |
| SQL 注入尝试 | 用户名: `admin' OR '1'='1' --` | 被阻止 —— 参数化查询阻止了绕过 |
| 暴力破解 | 5 次及以上登录失败 | 账户被锁定 |
| 日志访问(非管理员) | 以普通用户身份访问 `/logs` | 拒绝访问 |
## 展示的技能
`Python` `Flask` `SQLite` `bcrypt` `SQL 注入` `身份验证安全` `会话管理` `访问控制` `暴力破解缓解` `安全日志记录` `OWASP Top 10` `Burp Suite`
## 核心要点
该项目不仅演示了漏洞是如何被利用的,还展示了在实际应用程序中如何预防、监控和检测它们 —— 完整复刻了应用程序安全评估的整个工作流程。
## 截图
### 管理员登录

### 被锁定的账户

### 密码哈希处理

### 登录重定向

### SIEM 日志

标签:AppImage, AppSec, bcrypt, CISA项目, CWE-256, CWE-284, CWE-307, CWE-384, CWE-89, Flask, OPA, OWASP Top 10, PoC, Python, Web安全, Web应用防火墙, XML 请求, XSS, 代码安全审计, 会话管理, 哈希加盐, 安全开发, 安全编码, 密码安全, 数据泄露, 无后门, 暴力破解, 漏洞情报, 漏洞靶场, 红队行动, 网络安全实验, 蓝队分析, 认证绕过, 越权访问, 逆向工具, 防御 remediation, 防御检测, 靶场