最近为了能够较为真实地学习Web渗透的各种技术,就想着自己搭建一个专门用于学习的Web演练平台--DVWA"靶场"。
DVWA可以进行暴力(破解)、命令行注入、跨站请求伪造、文件包含、文件上传、不安全的验证码、SQL注入、SQL盲注、弱会话ID、XSS漏洞(DOM型跨站脚本、反射型跨站脚本、 存储型跨站脚本)等漏洞的演练,由于该系统提供了多个安全演练级别,因此可以逐步地来提高Web渗透的技术。DVWA是一套开源的系统,在练习Web渗透技术的同时,也可以通过阅读源码学习到对于各种漏洞的安全防护编码。
在网上搜了一圈发现大多都是PhpStudy+DVWA这种配置,由于主机上已经安装过Mysql,所以就想着单独安装Apache,然后配置关联Mysql和DVWA。
一、准备工作:
1、Apache:官网上下载最新的文件;
2、Mysql:官网上下载最新的安装包;
3、PHP:官网上下载最新的文件;
4、DVWA:https://github.com/digininja/DvWA/archive/master.zip
二、安装配置
Apache 配置步骤
- 修改conf目录下httpd.conf根目录配置:Define SRVROOT "F:/Apache24";
- CMD进入到bin目录下,使用
httpd -t
,检查配置文件是否合法; - CMD进入到bin目录下,执行
httpd -k install -n 自定义的访问名;
- CMD进入到bin目录下,执行net start apache 或者执行
httpd -k start -n apache启动服务;
启动后面板控制如图
- 通过浏览器访问http://localhost显示It Works!即部署成功。
PHP安装配置
- 复制一份php.ini-development,重命名php.ini
- 修改配置extension_dir = "F:/你自己的主机路径/php/ext"
MySQL安装配置
-
文件解压后将bin目录添加进系统环境变量
-
进目录建配置文件my.ini
[mysqld]
设置3306端口
port=3306
设置mysql的安装目录
basedir=D:/本地服务安装路径/mysql ----------是本地的文件路径-------------
设置mysql数据库的数据的存放目录
datadir=D:/本地服务安装路径/data ---------创建data文件夹-------------
允许最大连接数
max_connections=200
允许连接失败的次数。
max_connect_errors=10
服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
默认使用"mysql_native_password"插件认证
#mysql_native_password
default_authentication_plugin=mysql_native_password
[mysql]设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
三、关联配置
1、修改 Apache24\conf\目录下的httpd.conf 配置,让Apache 和 PHP协同工作,修改默认的索引,以支持PHP:添加index.php
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>
2、开启 rewrite 功能:将下面两行代码前面的 # 去掉:
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so
3、如果是PHP7,需要添加一下配置:
#php7
LoadModule php7_module F:/本地路径/php/php7apache2_4.dll
PHPIniDir F:/本地路径/php/php.ini
AddType application/x-httpd-php .php .html #声明.php和.html的文件能执行PHP程序
AddType application/x-httpd-php-source .phps
4、检查配置是否生效,添加文件查看phpinfo
<?php
phpinfo();
?>
5、重启Apache服务,访问http://localhost/1.php页面显示phpinfo则成功
6、修改PHP配置php.ini,去掉前面的;使php支持mysql。
extension=mysqli
;extension=oci8_12c ; Use with Oracle Database 12c Instant Client
;extension=odbc
;extension=openssl
;extension=pdo_firebird
extension=pdo_mysql
7、重启Apache服务,检查phpinfo页面,更新mysql相关API扩展即配置成功。
8、解压DVWA文件后,运行database目录下mysql脚本(或者后面部署DVWA后从页面导航创建),创建测试数据。
四、DVWA安装配置
1、将dvwa压缩包解压到apache\htdocs目录下;
2、复制dvwa/config目录里config.inc.php.dist重命名为config.inc.php,修改配置文件去连接我们前面创建好的数据库。
$_DVWA = array();
$_DVWA[ 'db_server' ] = getenv('DB_SERVER') ?: '127.0.0.1';
$_DVWA[ 'db_database' ] = 'dvwa';
$_DVWA[ 'db_user' ] = 'root';
$_DVWA[ 'db_password' ] = 'root';
$_DVWA[ 'db_port'] = '3306';
3、重启Apache服务,通过浏览器访问http://localhost/dvwa显示登录页面即搭建成功。
4、根据测试账号登录即可开始安全测试学习。
|---------|----------|
| 账户 | 密码 |
| admin | password |
| gordonb | abc123 |
| 1337 | charley |
| pablo | letmein |
| smithy | password |
五、其他问题
1、首次登陆DVWA提示reCAPTCHA key: Missing解决方法
编辑 dvwa/config/config.inc.php这个配置文件,给下面两个Key加上值。
$_DVWA[ 'recaptcha_public_key' ] = '6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb';
$_DVWA[ 'recaptcha_private_key' ] = '6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4K';