DVWA靶场实战:从环境搭建到SQL注入深度解析
如果你刚开始接触网络安全,想找一个既能动手实践又不会惹麻烦的练手环境,DVWA绝对是个不错的选择。这个故意设计得漏洞百出的Web应用,能让你在安全的环境里体验各种攻击手法,特别是SQL注入这种经典漏洞。不过很多新手在搭建DVWA时总会遇到各种奇怪的问题,明明照着教程一步步做,最后却卡在某个报错上。今天我就结合自己踩过的坑,带你从头搭建一个可用的DVWA环境,并深入分析不同安全等级下的SQL注入实战。
我见过太多人在配置PHPStudy时忽略了一些细节设置,导致DVWA无法正常连接数据库;也见过不少人在使用sqlmap时因为参数设置不当而无法成功注入。这些问题看似简单,但如果没有实际经验,光看文档确实容易走弯路。接下来我会把整个流程拆解开来,每个步骤都配上具体的操作和可能遇到的问题,让你能真正把环境跑起来。
1. 环境准备与PHPStudy配置细节
搭建DVWA的第一步是准备运行环境。DVWA基于PHP和MySQL开发,所以我们需要一个能同时运行这两者的环境。虽然有很多选择,但PHPStudy对Windows用户特别友好,它把Apache、PHP、MySQL都打包好了,一键安装就能用。
下载PHPStudy时要注意版本兼容性。DVWA对PHP版本有一定要求,太新的PHP版本可能不兼容。我建议选择PHP 5.4到PHP 7.3之间的版本,这些版本经过大量测试,稳定性最好。下载后直接安装,建议不要安装在系统盘,选择一个路径简单的目录,比如D:\phpStudy,这样后续配置时路径不会太复杂。
安装完成后启动PHPStudy,你会看到管理界面。这里有几个关键点需要注意:
- 服务启动顺序:先启动Apache,再启动MySQL。虽然PHPStudy通常会自动按正确顺序启动,但如果手动操作时顺序错了,可能会导致服务启动失败。
- 端口冲突检查:Apache默认使用80端口,MySQL默认使用3306端口。如果这些端口被其他程序占用,服务就无法启动。你可以在PHPStudy的“其他选项菜单”里找到“端口检测”功能,检查端口占用情况。
提示:如果80端口被占用,可以修改Apache的监听端口。找到Apache的配置文件
httpd.conf,搜索Listen 80,改成其他端口如Listen 8080,然后重启Apache服务。
配置PHP时有个细节很多人会忽略——PHP扩展的启用。DVWA需要一些特定的PHP扩展才能正常运行。打开PHPStudy的“PHP扩展”设置,确保以下扩展被勾选:
extension=mysqli
extension=mbstring
extension=gd2
extension=curl
特别是mysqli扩展,没有它DVWA就无法连接MySQL数据库。设置完成后记得重启Apache服务让配置生效。
MySQL的默认配置通常不需要修改,但如果你之前安装过其他MySQL版本,可能会有端口冲突。PHPStudy自带的MySQL密码默认是root,这个在后续配置DVWA时会用到。你可以在PHPStudy的“MySQL管理器”里查看或修改密码。
为了验证环境是否配置正确,可以在浏览器访问http://localhost(如果修改了端口就是http://localhost:端口号)。如果能看到PHPStudy的欢迎页面,说明Apache和PHP运行正常。接着访问http://localhost/phpmyadmin,用root/root登录,如果能成功进入phpMyAdmin管理界面,说明MySQL也正常运行。
2. DVWA部署与数据库连接配置
环境准备好后,接下来部署DVWA。从GitHub下载DVWA的最新版本,解压到PHPStudy的网站根目录。这个目录通常是phpStudy\WWW,但具体路径要看你的安装设置。你可以在PHPStudy的“网站”设置里查看根目录位置。
解压后建议把文件夹重命名为简单的dvwa,这样访问时URL会更简洁。然后进入dvwa/config目录,找到config.inc.php.dist文件,复制一份并重命名为config.inc.php。这个文件是DVWA的配置文件,我们需要修改数据库连接信息。
用文本编辑器打开config.inc.php,找到数据库配置部分。默认配置可能是这样的:
$_DVWA[ 'db_server' ] = '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = 'p@ssw0rd';
需要根据你的实际环境修改这些值:
| 配置项 | 说明 | 典型值 |
|---|---|---|
| db_server | MySQL服务器地址 | 127.0.0.1或localhost |
| db_database | 数据库名 | dvwa |
| db_user | 数据库用户名 | root |
| db_password | 数据库密码 | root(PHPStudy默认) |
这里最容易出错的是db_password。PHPStudy的MySQL默认密码是root,但有些教程写的是空密码或其他值。如果你不确定,可以打开PHPStudy的“MySQL管理器”查看或修改密码。
保存配置文件后,在浏览器访问http://localhost/dvwa/setup.php。如果一切正常,你会看到DVWA的安装页面。页面顶部可能会显示一些警告或错误,这些需要逐一解决。
最常见的错误是PHP配置问题。DVWA会检查PHP的某些设置是否满足要求,比如:
- allow_url_include:这个设置控制PHP是否允许通过URL包含远程文件。DVWA的文件包含漏洞模块需要这个功能。要启用它,需要修改PHP的配置文件
php.ini。 - PHP版本警告:如果PHP版本太高,DVWA可能会提示不兼容。这时可以考虑切换到较低的PHP版本。
修改allow_url_include时要注意,不是修改DVWA目录下的php.ini,而是修改PHPStudy使用的PHP版本的php.ini。你可以在PHPStudy的“PHP”菜单里找到“PHP版本”和“php.ini”的位置。打开php.ini,搜索allow_url_include,把值从Off改为On,然后重启Apache。
另一个常见问题是文件权限。在Windows上通常问题不大,但如果你在Linux或macOS上部署,可能需要给dvwa/hackable和dvwa/external目录设置适当的写权限。
解决所有警告后,滚动到页面底部,点击“Create/Reset Database”按钮。DVWA会自动创建所需的数据库和表。如果成功,你会看到绿色的成功消息。如果失败,通常是数据库连接配置有误,需要回头检查config.inc.php中的设置。

1383

被折叠的 条评论
为什么被折叠?



