Rochil29/cybersecurity-home-lab-WAF
GitHub: Rochil29/cybersecurity-home-lab-WAF
基于 VirtualBox、Kali Linux、DVWA 和 SafeLine WAF 构建的网络安全家庭实验室,用于演示 Web 应用攻击与 WAF 防护的对比效果。
Stars: 0 | Forks: 0
# Web Application Firewall 家庭实验室 (SafeLine WAF)
## 概述
一个使用 VirtualBox、Kali Linux、Ubuntu Server、DVWA 和 SafeLine WAF 构建的完整网络安全家庭实验室。
该实验室演示了真实世界中的 Web 应用程序攻击,以及 WAF 如何检测和阻止它们。
基于 Royden Rebello (The Social Dork) 的指南
参考视频:https://youtu.be/N0dEC1nuWCQ
## 实验室架构
| 组件 | 详情 |
|-----------------|-------------------------------|
| Kali Linux | 192.168.1.3 (攻击者) |
| Ubuntu Server | 192.168.1.5 (目标 + WAF) |
| DVWA | 端口 8080 (Apache 后端) |
| SafeLine WAF | 端口 9443 (管理), 443 (HTTPS) |
| 域名 | dvwa.local |
## 使用的工具
- VirtualBox
- Kali Linux
- Ubuntu Server 22.04 LTS
- DVWA (Damn Vulnerable Web Application)
- SafeLine WAF (v9.3.6)
- Apache2, PHP 8.5, MySQL 8.4
- OpenSSL (自签名证书)
- Docker (SafeLine 运行在 Docker 上)
## 已完成的设置
- 带有 LAMP stack 的 Ubuntu Server
- DVWA 已安装并配置在端口 8080 上
- 自签名 SSL 证书
- SafeLine WAF 作为端口 443 上的 HTTPS 反向代理
- 使用 /etc/hosts (dvwa.local) 的本地 DNS
- Kali Linux 通过 SSH 连接到 Ubuntu 进行管理
## 演示的攻击
### 开启 WAF 防护时 (已阻止):
- SQL Injection — 拒绝访问
- XSS (Reflected) — 拒绝访问
- Command Injection — 拒绝访问
- 文件上传 (PHP shell) — 拒绝访问
- 文件包含 (/etc/passwd) — 拒绝访问
### 关闭 WAF 防护时 (已被利用):
- SQL Injection — 导出了数据库中的所有用户
- XSS — 浏览器 alert 弹窗执行成功
- Command Injection — 运行了 whoami 和 cat /etc/passwd
- 文件上传 — PHP web shell 上传成功
- 文件包含 — /etc/passwd 内容被泄露
## 解决的关键问题
1. DVWA 500 错误 — MySQL 用户配置错误 +
PHP allow_url_include 为 Off
2. 浏览器绕过 WAF — 通过 Apache
ServerName + UseCanonicalName 指令修复
3. 虚拟机之间的复制/粘贴 — 使用 SCP 传输
SSL 证书文件
4. 在错误的目录中工作 — 始终先运行 cd ~
## 文档
包含所有步骤、命令、
问题和解决方案的完整实验室文档位于:
docs/SafeLine_WAF_Lab_Documentation.docx
## 截图
所有开启和关闭 WAF 防护的攻击演示
均位于 screenshots/ 文件夹中
## 免责声明
本实验室仅供教育目的使用。
所有测试均在隔离的家庭实验室环境中进行。
切勿将这些技术用于您不拥有的系统。
标签:安全测试工具, 请求拦截