DVWA靶场 核心功能
三、核心功能
DVWA 的功能可以分成「漏洞模块」和「难度机制」两件事来看。先在 DVWA Security 里选档,再到各模块练习。
| 模块 | 练什么 | Low 档的典型问题 |
|---|---|---|
| Brute Force | 登录爆破与防护 | 无失败锁定、无验证码、无速率限制 |
| Command Injection | 系统命令拼接 | 直接把输入拼进 shell_exec,无过滤 |
| CSRF | 改密请求伪造 | 改密接口没有 token 校验 |
| File Inclusion | LFI / RFI | 包含路径直接来自参数 |
| File Upload | 上传 WebShell | 不校验类型与内容,上传即可执行 |
| SQL Injection | 回显型注入 | 字符串拼接 SQL,报错直接回显 |
| SQL Injection (Blind) | 盲注 | 无回显,需靠布尔或时间差推断 |
| Weak Session IDs | 会话标识可预测 | 用递增数字当 cookie |
| XSS (Reflected / Stored / DOM) | 三类跨站脚本 | 输入未经编码直接输出到页面 |
| CSP Bypass | 内容安全策略 | CSP 允许 unsafe-inline 或允许自域脚本 |
| JavaScript Attacks | 前端校验不可信 | 只在前端做校验,服务端不验 |
| Authorisation Bypass | 越权访问 | 接口只藏了按钮,没做服务端鉴权 |
| Open HTTP Redirect | 开放重定向 | 跳转目标参数不校验 |
| Cryptography | 弱加密与哈希 | 可预测的伪随机、无盐哈希 |
难度档位的设计逻辑,是每一档只堵住一种攻击手法,逼你找绕过路径:
| 档位 | 防御写法 | 仍可绕过的思路 |
|---|---|---|
| Low | 无任何过滤 | 直接构造 payload |
| Medium | 黑名单替换 / 简单转义(如 mysql_real_escape_string、str_replace 掉 <script>) | 换大小写、换等价关键字、换编码绕黑名单 |
| High | 加 LIMIT 限制、更严的匹配 | 用注释符截断、用联合查询换列数 |
| Impossible | 参数化查询 / 白名单 / token / 输出编码 | 设计上不可绕,用于读源码学正确写法 |
关键配置项:config/config.inc.php 管数据库连接;config/config.inc.php.dist 是模板;php.ini 的 allow_url_include 决定 RFI 能否演示;DVWA Security 页把档位写进 session。想重置所有数据,点 Setup / Reset DB 即可,注意它不会顺便把档位改回 Low。

