DVWA的部署和教程
- 概述
- 本地部署DVWA
- 部署DVWA的基本环境
- 下载DVWA
- 配置MySql数据库
- 配置DVWA
- DVWA教程
- 总结
概述
DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。
本地部署DVWA
部署DVWA的基本环境
dvwa本质也是一个web应用服务,所以可以使用下面的web应用服务组合来进行环境部署 – Apache + php + MySql。我在这篇博客中比较详细的讲解了该web环境的部署,参见 – CTF之web学习记录 – 工具篇。这篇博客中主要是在linux环境下分别安装三个工具,其实可以用集成环境直接一把搞定 – XAMPP,XAMPP(Apache+MySQL+PHP+PERL)是一个功能强大的建站集成软件包。
接下来是按照单独安装Apache+php+MySql的方式进行部署DVWA,和使用XAMPP略有区别,其实也就是一些目录的不同而已,基本思路是一样的。
下载DVWA
DVWA
上面是dvwa的链接,将下载好的文件解压出来,重新命名为dvwa,然后复制到/var/www/html
目录下。
配置MySql数据库
dvwa的使用需要结合MySql数据库,这里我们先在MySql数据库中创建一个用户供dvwa使用。用户名为dvwa,密码也是dvwa,授予该用户对dvwa数据库中所有表的所有权限。
$ sudo mysql
$ create database dvwa;
$ create user "dvwa"@"localhost" identified by "dvwa";
$ grant all on dvwa.* to "dvwa"@"localhost";
配置DVWA
接下来是对DVWA的配置,下载DVWA,解压并重名为dvwa后,发现dvwa/config文件下没有config.inc.php
文件,但有config.inc.php.dist
文件。接下来按照下面命令行操作:
$ cp config.inc.php.dist config.inc.php
$ vim config.inc.php
# 对应行数的内容修改如下
# 对比官方文件也只是修改了db_password
......
......
18 $_DVWA[ 'db_server' ] = '127.0.0.1';
19 $_DVWA[ 'db_database' ] = 'dvwa';
20 $_DVWA[ 'db_user' ] = 'dvwa';
21 $_DVWA[ 'db_password' ] = 'dvwa';
22 $_DVWA[ 'db_port'] = '3306';
23
24 # ReCAPTCHA settings
25 # Used for the 'Insecure CAPTCHA' module
26 # You'll need to generate your own keys at: https://www.google/recaptcha/admin
27 $_DVWA[ 'recaptcha_public_key' ] = '6LdK7xITAAzzAAJQTfL7fu6I-0aPl8KHHieAT_yJg';
28 $_DVWA[ 'recaptcha_private_key' ] = '6LdK7xITAzzAAL_uw9YXVUOPoIHPZLfw2K1n5NVQ';
......
......
上面文件中,23行之前对应数据库的配置,23行后对应
reCAPTCHA API key
的配置,如果不配置对应的公私匙会在Insecure CAPTCHA
章节出现如下的报错信息。
之后我们访问http://your_local_ip/dvwa/setup.php
,会出现Database Setup界面,如果你运气好,出现该界面时Setup Check中的状态应该是这样的,如下图所示。
但最开始我安装的时候,php module gd/mysql/pdo_mysql状态都为红,后面两个module的缺失导致我无法点击运行最下面的Create / Reset Database
。这里我们可以通过下面的命令进行安装,安装完后记得重启一下apache服务。
sudo apt install php-mysql
sudo apt install php-gd
安装完上面的包后,Setup Check中还有一行状态为红色,allow_url_include
,该状态会影响文件包含一节的操作,所以这里提前修改一下。首先在apache网页根目录下即/var/www/html
目录下创建index.php
,index.php
中的内容如下,然后访问http://your_local_ip/index.php,就可以看到php的配置信息,如下图所示。
<?php
phpinfo();
?>
上图中显示了我的php版本为7.2,且php.ini配置文件在/etc/php/7.2/
目录下,我们需要修改该配置文件中的allow_url_include = On
,如下截图所示,之后再重启下apache服务即可。
最后我们修改一下一些目录和文件的可写权限,也就是下面截图中展示的两个目录和一个文件。如果本身就显示为Yes,表明权限正确,不需要进行修改。
$ cd /var/www/html/
$ sudo chmod 777 dvwa/hackable/uploads/
$ sudo chmod 777 dvwa/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt
$ sudo chmod 777 dvwa/config/
最后我们再点击上面的Create / Reset Database
,如果config.inc.php
文件中数据库配置正确,那么就会返回到DVWA的登录界面。如下图所示,此时用户名输入admin,密码为password,我们就可以开始进行我们的web漏洞学习了。
DVWA教程
本来想自己再写一篇全系列的DVWA教程,但发现网上这种教程颇多,我也就不再做简单的搬运工了。大家可以参考一下这个系列的博文 — 新手指南:DVWA-1.9全级别教程,内容很详尽,虽细节之处略有偏失,但那些内容也正是需要我们自己动手才能掌握的。
总结
在本次dvwa的环境搭建过程中,我遇到一些小问题,主要原因是我没有使用集成的web服务环境,而是自己选择了apache+php+mysql这种一步一步的方式来搭建这个环境。当然采取这种方式给自己造成了一些动手上的麻烦,但同时也帮助自己学习了更多的知识,以及在面临这些问题时该如何思考并尝试自己去解决,相信每克服一个问题,都将使自己变得更强大。
不忘初心,砥砺前行!
更多推荐
DVWA的部署和教程
发布评论