🌐 Web 应用程序安全评估
一个专业的 Web 应用程序安全评估实验室,专注于 OWASP Top 10 (2021),使用 OWASP ZAP 对 intentionally vulnerable web applications 进行测试。






# 概述
本项目演示了如何使用 OWASP ZAP 识别、分析和验证 Web 应用程序的安全弱点。
本次评估重点关注 **OWASP Top 10 (2021)** 中的两个主要类别:
- A04 — 不安全设计
- A05 — 安全配置错误
在评估过程中,通过强制浏览发现了几个敏感资源,暴露了隐藏文件,识别了不安全的服务器配置,并实施和验证了修复技术。
# 功能
✔ 被动安全评估
✔ 主动安全扫描
✔ 强制浏览
✔ 隐藏文件发现
✔ 目录枚举
✔ 安全配置错误评估
✔ 不安全设计评估
✔ 安全标头验证
✔ 修复验证
✔ 发现文档
# 🏗️ 实验室架构
评估环境旨在重现真实的 Web 应用程序安全评估工作流。
它结合了 intentionally vulnerable application、Web 安全扫描器和手动验证技术,以识别、利用和验证常见的安全弱点。
# 🔄 评估工作流
本次评估遵循受现实世界渗透测试项目启发的结构化方法论。
### 评估流程
1. 部署 vulnerable application。
2. 将 OWASP ZAP 配置为拦截代理。
3. 执行被动侦察。
4. 执行主动安全扫描。
5. 使用 Forced Browse 发现隐藏资源。
6. 分析发现的漏洞。
7. 手动验证发现的结果。
8. 应用安全加固。
9. 验证修复的有效性。
# 🖥️ 评估环境
该实验室使用了渗透测试人员和应用程序安全专家常用的开源技术构建。
| 组件 | 用途 |
|-----------|---------|
| OWASP ZAP | Web 应用程序安全扫描器 |
| bWAPP | Vulnerable Web Application |
| Docker | 应用程序部署 |
| Apache | Web 服务器 |
| PHP | 后端 Runtime |
| Firefox | 浏览器测试 |
| Kali Linux | 安全测试平台 |
在整个评估过程中,使用 OWASP ZAP 执行了被动分析、主动扫描、强制浏览和手动验证。
# 🚨 安全发现
安全评估发现了与应用程序设计和服务器配置相关的多个弱点。
在评估过程中检测到以下类别:
- 缺少安全标头
- 隐藏文件暴露
- 目录列表已启用
- 信息泄露
- 安全配置错误
- 不安全的应用程序设计
这些发现作为评估期间执行的手动调查的起点。
# 🔍 A04 — 不安全设计
对 **A04:2021 – 不安全设计** 的评估重点是识别可能因安全控制不足而暴露敏感资源的架构弱点。
与纯粹的技术漏洞不同,不安全设计问题通常需要手动分析,并且无法仅通过自动化扫描来可靠地检测。
为了支持调查,使用了 **OWASP ZAP Forced Browse** 来枚举由应用程序暴露的隐藏目录和资源。
## 强制浏览发现
强制浏览过程揭示了几个可公开访问的目录,这些目录在没有适当授权的情况下本不应可达。
发现的资源包括:
- `/admin`
- `/db`
- `/passwords`
- `/cgi-bin`
这些发现表明应用程序的整体安全设计和访问控制策略存在弱点。
## 敏感数据库目录
发现的一个资源暴露了应用程序的数据库目录。
目录列表暴露了内部文件,这些文件绝不应对外公开访问。
潜在影响:
- 敏感信息泄露
- 数据库泄漏
- 增加攻击面
## 暴露的密码目录
另一个暴露的目录包含与密码相关的资源。
浏览此目录的能力表明对敏感服务器资源的保护不足。
潜在影响:
- 凭据泄露
- 配置泄漏
- 促进权限提升攻击
## 未受保护的管理界面
评估还揭示了一个无需适当限制即可访问的管理界面。
管理资源应始终通过身份验证和授权机制加以保护。
潜在风险包括:
- 未经授权的管理访问
- 配置篡改
- 完全的应用程序沦陷
# ⚙️ A05 — 安全配置错误
评估发现了几个安全配置错误,导致敏感文件和配置数据的意外暴露。
这些弱点是由不安全的默认设置和服务器加固不足造成的。
## 暴露的凭据
评估发现了包含敏感信息的可公开访问文件。
暴露的 XML 文件包含与用户相关的信息,包括用户名、密码和 secret phrases。
潜在影响:
- 凭据窃取
- 信息泄露
- 用户冒充
## 暴露的备份配置
备份配置文件也可公开访问。
配置备份通常包含绝不应暴露的内部服务器设置。
潜在影响:
- 服务器指纹识别
- 配置泄露
- 更容易利用其他漏洞
## 额外的配置暴露
成功检索到了另一个备份配置文件。
可通过 Web 服务器访问的备份文件的存在,表明部署和维护实践不足。
建议的缓解措施包括:
- 从生产环境中删除备份文件。
- 禁用目录列表。
- 限制对敏感资源的访问。
- 加固 Web 服务器配置。
# 🛠️ 安全建议
评估突出了改进 Web 应用程序整体安全态势的几个机会。
以下建议被认为是基本的安全最佳实践:
## 访问控制
- 限制对管理资源的访问。
- 对每个敏感 endpoint 实施服务器端授权。
- 应用最小权限原则。
## 服务器加固
- 禁用目录列表。
- 从生产环境中删除不必要的文件。
- 在部署前删除备份和临时文件。
- 限制对敏感目录的访问。
## 安全配置
- 禁用详细的错误消息。
- 隐藏服务器版本信息。
- 禁用不必要的服务和模块。
- 定期审查默认配置。
## 安全标头
实施现代 HTTP 安全标头,包括:
- Content-Security-Policy (CSP)
- X-Frame-Options
- X-Content-Type-Options
- Referrer-Policy
- Permissions-Policy
- Strict-Transport-Security (HSTS)
## 持续安全评估
- 执行定期的漏洞扫描。
- 进行定期的渗透测试。
- 保持软件和依赖项更新。
- 将安全测试集成到开发生命周期中。
# ✅ 修复验证
在实施安全改进之后,对应用程序进行了重新评估,以验证已识别的漏洞是否已得到妥善缓解。
下方的对比说明了修复前后的安全态势。
### 改进之处
✔ 已实施安全标头
✔ 减少了信息泄露
✔ 改善了浏览器安全性
✔ 更好的服务器加固
✔ 增强了应用程序的安全态势
修复过程表明,漏洞管理并不止于检测;验证纠正措施是安全软件生命周期的重要组成部分。
# 📚 经验教训
该项目表明,有效的 Web 应用程序安全需要的不仅仅是自动化的漏洞扫描。
主要收获包括:
- 安全必须在设计阶段进行集成。
- 自动化扫描器应始终辅以手动验证。
- 配置错误可能会暴露高度敏感的资源。
- 备份文件可能会泄露机密信息。
- 适当的服务器加固可显著减少攻击面。
- 修复工作之后应始终进行安全验证。
- OWASP Top 10 仍然是现代 Web 应用程序安全评估的重要框架。
# 📖 参考资料
- OWASP Top 10 (2021)
- OWASP ZAP
- bWAPP
- Docker 文档
- Apache HTTP 服务器文档
- PHP 文档
# 👨💻 作者
本项目作为 **魁北克大学希库蒂米分校 (UQAC) 计算机科学专业硕士 – 网络安全** 的一部分开发。
### 团队成员
- **Aaron ABAVI**
- Romaric HUBERT
- Matthis DAVIAUD
- Cheikh Boubacar BAME
- Joshua MARTINOLI
学术主管
**Fehmi Jaafar 先生**
# 📄 许可证
本项目在 MIT 许可证下发布。
有关更多信息,请参阅 LICENSE 文件。