一次针对 DVWA(Damn Vulnerable Web App) 的实战型 Web 应用安全评估,使用 OWASP ZAP(Zed Attack Proxy)2.17.0 执行。本项目记录了完整的工作流程:侦察(爬取)、自动化漏洞扫描,以及对所产生告警的分析——包括一项 远程代码执行(CVE-2012-1823) 漏洞发现。
⚠️ 免责声明: 本次评估是在隔离的实验环境中针对 DVWA 进行的,DVWA 是一个特意构建为易受攻击、用于培训目的的应用程序。切勿扫描或攻击您不拥有、或未经明确书面许可测试的系统。
识别并记录 DVWA 中常见的 Web 应用程序漏洞,使用 OWASP ZAP 的爬取和主动扫描功能,并练习阅读、解读和报告自动化安全扫描结果。
http://192.168.109.115/dvwa/index.phpadmin主动扫描共发送 1,157 个请求,产生 72 条新告警,ZAP 将其归并为 17 种不同的告警类型:
每条告警的完整详情见
docs/findings.md。
识别出的最严重问题是高风险远程代码执行漏洞,对应 CVE-2012-1823(一个著名的 PHP-CGI 查询字符串解析缺陷)。
http://192.168.109.115/dvwa/login.php?-d+allow_url_include%3d1+-d+auto_prepend_file%3dphp://input= 字符的查询字符串。这使攻击者能够向 PHP 解释器传递原始的命令行风格标志(-d allow_url_include=1 -d auto_prepend_file=php://input),从而实现任意 PHP 代码执行和源代码泄露。mod_rewrite 及 RewriteCond/RewriteRule 指令,在请求到达 PHP-CGI 之前拦截格式错误的查询字符串。X-Frame-Options / frame-ancestors)。HttpOnly 和 SameSite 属性,降低会话劫持和 CSRF 风险。dvwa-zap-pentest/
├── README.md # This file — project overview & summary
├── docs/
│ └── findings.md # Full detailed write-up of each alert
├── screenshots/ # Numbered screenshots referenced above
└── LICENSE
admin 身份登录。本项目为 Web 应用安全学习练习的一部分,仅用于教育目的。
| # | 告警 | 实例数 | 风险 |
|---|
| 1 | 远程代码执行 — CVE-2012-1823 | 2 | 🔴 高 |
| 2 | 源代码泄露 — CVE-2012-1823 | 2 | 🔴 高 |
| 3 | 缺少 Anti-CSRF Token | 2 | 🟠 中 |
| 4 | 未设置内容安全策略(CSP)响应头 | 4 | 🟠 中 |
| 5 | 目录浏览 | 3 | 🟠 中 |
| 6 | 仅支持 HTTP 的站点 | 1 | 🟠 中 |
| 7 | 发现隐藏文件 | 1 | 🟠 中 |
| 8 | 缺少反点击劫持响应头 | 2 | 🟠 中 |
| 9 | Cookie 缺少 HttpOnly 标志 | 2 | 🟡 低 |
| 10 | Cookie 缺少 SameSite 属性 | 2 | 🟡 低 |
| ... | (另有 7 条信息/低风险告警——请参阅完整 ZAP 导出) | ⚪ 信息 |
| 截图 | 说明 |
|---|
![]() | 登录后的 DVWA 主页 |
![]() | OWASP ZAP 2.17.0 欢迎界面 |
![]() | 输入目标之前的自动化扫描选项卡 |
![]() | 启动攻击前,目标 URL 已设置为 DVWA |
![]() | 发现的 17 种告警类型(按风险分组) |
![]() | RCE(CVE-2012-1823)告警——URL、风险、攻击载荷、证据 |
![]() | RCE(CVE-2012-1823)——描述、其他信息和解决方案 |
![]() | 主动扫描达到 100%——1,157 个请求,72 条新告警 |
![]() | 爬虫结果——发现 9 个 URL,新增 7 个节点 |