您现在的位置是:烟消火灭网 > 热点

搭建dvwa

烟消火灭网2026-10-17 07:44:36【热点】0人已围观

简介DVWA 全称 Damn Vulnerable Web Application,翻译过来就是“该死的脆弱 Web 应用”。名字起得直白,它就是一个故意写满漏洞的 PHP/MySQL 站点,给你随便打。

DVWA 全称 Damn Vulnerable Web Application,搭建翻译过来就是搭建“该死的脆弱 Web 应用”。名字起得直白,搭建它就是搭建一个故意写满漏洞的 PHP/MySQL 站点,给你随便打。搭建我第一次搭它是搭建在一台老旧的 Ubuntu 虚拟机上,Apache 和 PHP 的搭建版本都不新,结果反而省了不少事。搭建

先说环境。搭建你需要一个能跑 PHP 和 MySQL 的搭建 Web 服务器。最省心的搭建方案是 XAMPP 或 phpStudy,一键装好 Apache、搭建MySQL、搭建PHP,搭建省去单独配置的搭建麻烦。如果你跟我一样喜欢手动折腾,那就 apt install apache2 php php-mysql mysql-server,再补上 php-gd 和 php-mbstring,DVWA 的验证码和中文支持靠它们。

数据库这块要留意。DVWA 的安装脚本会自己建库建表,但前提是你得先给它一个能用的 MySQL 账号。默认配置里写的是 root/空密码,这在本地实验环境无所谓,放到公网就是找死。我习惯新建一个 dvwa 用户,只给 localhost 权限,密码设成随机字符串,然后改 config/config.inc.php 里的对应字段。

下载源码直接去 GitHub 拉。git clone https://github.com/digininja/DVWA.git,扔进 /var/www/html 下面。权限别搞错,Apache 的运行用户(通常是 www-data)要对整个目录有读权限,对 hackable/uploads 目录得有写权限,不然文件上传漏洞那关你连马都传不上去。我吃过这个亏,折腾了半小时才发现是权限问题。

浏览器打开 http://localhost/DVWA/setup.php,页面会列出一堆环境检查项。allow_url_fopen、allow_url_include 这两个建议打开,不然文件包含漏洞没法玩。PHP 版本别太高,7.4 比较稳,8.x 有些函数被移除了,DVWA 会报错。MySQL 的 secure_file_priv 如果设了路径,SQL 注入写文件那关会失败,本地实验直接留空。

点“Create / Reset Database”按钮,等几秒,数据库就建好了。默认账号 admin,密码 password。登录进去,第一件事是去 DVWA Security 页面把难度调到 low。别急着笑,真有人上来就选 impossible,然后问我为什么注入不进去。

界面左侧一排漏洞模块:Brute Force、Command Injection、CSRF、File Inclusion、File Upload、SQL Injection、XSS。每个模块都有对应的源码可以看,点右下角“View Source”就能对照。我建议先看源码再动手,知道它怎么写的,你才知道怎么绕。

有个细节值得提。DVWA 的 low 难度下,SQL 注入那关的查询语句是直接拼接的,你输入 1' OR '1'='1 就能拿到所有用户。但如果你把 PHP 的 magic_quotes_gpc 开了(老版本 PHP 默认开),单引号会被转义,payload 就废了。现在 PHP 7 以上已经移除了这个特性,所以不用管。

搭好之后别只当个靶场。我习惯在 DVWA 旁边开一个 Burp Suite,把代理设好,拦截每个请求看参数怎么传的。DVWA 的漏洞太“标准”了,真实环境里没这么干净。拿它练手可以,但别以为通关了就懂安全了。

最后说个坑。DVWA 的 reCAPTCHA 密钥在 config 里是留空的,Brute Force 那关如果选了 medium 以上难度,需要你去 Google 申请一对 key 填进去。不填的话验证码图片显示不出来,但 low 难度不受影响,直接爆破就行。

整套流程走下来,快的话二十分钟,慢的话一晚上。取决于你被环境问题卡住多久。我见过有人因为 SELinux 没关,Apache 读不了 DVWA 目录,报 403 报了一小时。所以,遇到问题先看日志,/var/log/apache2/error.log 比瞎猜管用。

很赞哦!(9937)