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/ 文件夹中 ## 免责声明 本实验室仅供教育目的使用。 所有测试均在隔离的家庭实验室环境中进行。 切勿将这些技术用于您不拥有的系统。
标签:安全测试工具, 请求拦截