搭建dvwa漏洞环境
DVWA(Damn Vulnerable Web Application)是搭建一个用PHP写的网页靶场,专门拿来练手用的漏洞。它把SQL注入、环境XSS、搭建文件包含这些常见漏洞都做成了可调难度的漏洞模块,你可以在自己机器上随便折腾,环境不用担心搞坏什么东西。搭建下面记录一下我搭建它的漏洞过程。
我选的环境是Windows + XAMPP的组合。XAMPP自带Apache、搭建MySQL和PHP,漏洞省得一个个装。环境去官网下个安装包,搭建一路下一步就行。漏洞装完打开控制面板,环境把Apache和MySQL的Start按钮点一下,两个都变绿了就算跑起来了。
接下来把DVWA的源码拉下来。GitHub上搜“dvwa”,第一个就是。直接Download ZIP,解压到XAMPP的htdocs目录下。比如我的路径是C:\xampp\htdocs\dvwa。文件夹名字最好改成dvwa,短一点方便访问。
然后要改配置文件。进到dvwa/config目录,能看到一个config.inc.php.dist,把它复制一份改名为config.inc.php。用记事本或者VSCode打开,找到这几行:
$_DVWA[ 'db_server' ] = '127.0.0.1'; $_DVWA[ 'db_database' ] = 'dvwa'; $_DVWA[ 'db_user' ] = 'root'; $_DVWA[ 'db_password' ] = ''; XAMPP默认的MySQL用户就是root,密码为空,所以这里不用动。如果你之前改过密码,那就填你自己的。另外还有一个db_port,默认3306,一般也不用改。
打开浏览器,访问http://localhost/dvwa/setup.php。页面会显示一排检查项,绿色的就是通过了。如果看到红色,通常是MySQL没启动,或者config文件里密码不对。往下拉,点那个“Create / Reset Database”按钮。它会自动建库建表,顺便塞一些测试数据进去。点完等几秒,页面会跳转到登录页。
默认账号是admin,密码是password。登进去之后,左边菜单能看到一堆漏洞模块。每个模块右上角有个“DVWA Security”下拉框,可以选Low、Medium、High、Impossible四个等级。Low就是完全没防护,随便打;Impossible是修好了的版本,可以拿来对比学习。
有个小坑要注意:DVWA有时候会提示“PHP function allow_url_include: Disabled”。这个不影响大部分模块,但文件包含那关需要它。解决办法是打开php.ini,找到allow_url_include,把Off改成On,然后重启Apache。XAMPP的php.ini一般在C:\xampp\php\php.ini。
还有一点,如果你用的是PHP 8以上版本,DVWA某些老代码可能会报错。我建议用XAMPP 7.x系列,PHP 7.4那个版本,兼容性最好。我一开始用PHP 8.2,登录之后页面白屏,换成7.4就正常了。
搭建完这个环境,你就可以在本地随便试各种攻击手法了。比如在SQL Injection页面输入1' OR '1'='1,看看返回什么。或者在XSS页面填个<script>alert(1)</script>,看弹不弹窗。改安全等级再试一遍,对比防护前后的差异。这种即时反馈比光看书要直观得多。
整个搭建过程大概十几分钟,主要时间花在下载XAMPP和DVWA源码上。配置本身不复杂,关键就是数据库那几行别填错。搭好之后建议做个快照或者备份,万一玩坏了可以快速恢复。