web-threat-mitigation
关于使用 OWASP ZAP、Burp Suite 和 ModSecurity WAF(含 OWASP CRS)检测和缓解 Web 应用程序威胁的动手实验。案例研究:Spring4Shell (CVE-2022-22965)。基于本地 Docker 的设置。
Web 威胁缓解实验 – OWASP ZAP、ModSecurity 与 CVE 利用
本仓库记录了一个专注于模拟、分析和缓解常见 Web 应用程序威胁的实验。它包括部署存在漏洞的目标、扫描工具、部署 WAF(ModSecurity with OWASP CRS),以及实时利用 CVE-2022-22965 (Spring4Shell)。
实验目标
- 使用 Docker 部署存在漏洞的 Web 应用程序 (WebGoat)
- 使用 OWASP ZAP 和 Burp Suite 执行漏洞扫描
- 使用 Nginx + ModSecurity + OWASP CRS 4.9.0 设置反向代理
- 分析 WAF 实施前后的结果
- 利用 Spring4Shell 并验证 WAF 的有效性
使用的工具
- Docker + Docker Compose
- OWASP ZAP 和 Burp Suite
- ModSecurity (通过 libnginx-mod-http-modsecurity)
- OWASP Core Rule Set (CRS 4.9.0)
- 带 Metasploit 框架的 Kali Linux
- CentOS 9 Stream 和 Debian 12
实验工作流程
- WebGoat 部署 在 CentOS 上使用 Docker,暴露在 8080 端口。



- 初始扫描 从 Kali Linux 使用 OWASP ZAP:
- 高风险警报:SQL 注入、Spring4Shell
- 中等风险:缺少 CSP、CSRF 令牌、参数篡改
- 信息性:版本泄露、潜在的 XSS、会话问题


- 反向代理部署 在 Debian 12 上使用 nginx。

- WAF 设置 使用 OWASP CRS 并加载规则:
/etc/nginx/coreruleset-4.9.0/crs-setup.conf
/etc/nginx/coreruleset-4.9.0/rules/*.conf
通过检查 ModSecurity 日志来测试和启用规则。



- WAF 后扫描 使用 OWASP ZAP 显示:
- 警报减少(阻止或掩盖的响应)
- 确认 WAF 保护已生效


- 利用测试 使用 Metasploit 针对 Spring4Shell:
- 无 WAF:RCE 成功(反向 shell 载荷)
- 有 WAF:因 CRS 检测而阻止利用


结论
该实验展示了分层安全的重要性:
- 易受攻击的应用程序在没有保护的情况下很容易暴露
- ZAP/Burp 有助于识别和分类漏洞
- ModSecurity 和 OWASP CRS 有效减少攻击面
- WAF 可以通过适当的调整来阻止实际的 CVE,如 Spring4Shell
作者
Bruno Paolo Huamán Vela (利马,秘鲁)
网络安全学生 – 乌拉尔联邦大学 (UrFU)