前段时间,部署了DVWA环境,遇到各种疑难杂症的问题,在网上也找不到对应的解决方案,所以,决定写一篇关于大家都会遇到的问题的解决方法,希望能够帮助到有需要帮助的人。
首先,安装LAMP或者LNMP环境,这里就进行阐述,不过可以参考我们一些老前辈的文章:
参考链接:
比较详细:Centos7+LAMP部署DVWA环境---https://www.jianshu.com/p/0aa3320fc848
专门针对DVWA:dvwa安装教程-https://www.jianshu.com/p/0dda6cfc3a9e?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation
LAMP环境的搭建(自定义):https://www.cnblogs.com/xuefy/p/11550715.html
当然,有其他更为简单的部署方式方法,这里就不一一引用,有需要的自行度娘或者谷歌。
对于数据库,我使用的是mysql8.0.4,比较新的版本,PHP的环境是7.4,也是比较新的版本,所以你们部署旧的环境,或者使用集成的环境,技术比较成熟,不一定会遇到这些问题。
部署与前期的解压安装,配置我这里不做详细解读,详细请看参考链接。
现在进入正题:
安装好之后,打开检查页面,出现如下常见问题:
Setup Check
Operating system: *nix
Backend database: MySQL
PHP version: 7.4.0
Web Server SERVER_NAME: 192.168.118.129
PHP function display_errors: Enabled (Easy Mode!)
PHP function safe_mode: Disabled
PHP function allow_url_include: Disabled
PHP function allow_url_fopen: Disabled
PHP function magic_quotes_gpc: Disabled
PHP module gd: Missing - Only an issue if you want to play with captchas
PHP module mysql: Installed
PHP module pdo_mysql: Missing
MySQL username: root
MySQL password: ******
MySQL database: dvwa
MySQL host: 127.0.0.1
reCAPTCHA key: Missing
[User: root] Writable folder /usr/local/httpd/htdocs/DVWA/hackable/uploads/: no
[User: root] Writable file /usr/local/httpd/htdocs/DVWA/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt: no
[User: root] Writable folder /usr/local/httpd/htdocs/DVWA/config: no
Status in red, indicate there will be an issue when trying to complete some modules.
If you see disabled on either allow_url_fopen or allow_url_include, set the following in your php.ini file and restart Apache.
allow_url_fopen = On
allow_url_include = On
These are only required for the file inclusion labs so unless you want to play with those, you can ignore them.
由于编辑器的问题,无法将字体标红,这里放入一张图片:
现在我们来进行逐个逐个突破:
PHP function allow_url_include:Disabled
PHP function allow_url_fopen:Disabled
第一个问题:都对php.ini文件进行修改即可
查找php.ini文件,并修改如下三个位置的php.ini文件(如果不知道怎么定位,就全部改成:allow_url_include:On, allow_url_fopen:On即可:
一、DVWA安装目录下的php.ini文件,默认allow_url_include:On, allow_url_fopen:On,无需修改,如果出现:allow_url_include:Off,或者allow_url_fopen:Off,请修改成上面默认的On即可。
二、修改etc目录下的php.ini文件,一般路径是:/etc/php.ini,如果没有,不用修改。查找到allow_url_include:Off, allow_url_fopen:Off这两个参数,都改成On即可,如果已经是On则不用修改
三、修改PHP安装目录下的php.ini文件,每个人安装的目录不一样,以find找到的目录为准,查找到allow_url_include:Off, allow_url_fopen:Off这两个参数,都改成On即可,如果已经是On则不用修改。
这次,我们第一个问题就已经解决,重启apache服务即可;如图所示:
第二个问题:这个问题最为难解,耗费了我很长的时间。
网上很多教程都是说,安装php-gd扩展插件就行,但是如何安装是个问题。
1、有些人说yum install -y php-gd,确实可以安装成功,但是,还是正常提示
2、很多人说不影响正常使用,这个功能主要是图形图像调用的功能,怎么可能不影响正常使用呢?
我查找了很多关于pd插件安装的资料,总结如下:
一、需要在PHP安装文件内进行扩展的安装,然后引用即可,包括后面pdo_mysql扩展包也是同样的安装方式
1、首先,进入php安装编译的目录:cd /usr/lanp/php-7.4.0 (说明:这里是我PHP编译的目录,其他你们通过yum或者自行编译安装的,或者是集成环境安装的,需要找到对应的安装文件目录)
2、查找系统是否存在:phpize,通过命令:find / -name phpize ,我显示的路径是我的安装目录下:/usr/local/php/config/phpize,加粗的这段路径,根据个人的安装目录而定,有些人并非安装在usr/local/路径下,以查找的结果为准。
3、进入扩展目录:cd /usr/lamp/php-7.4.0/ext/gd
4、执行phpize,直接:/usr/local/php/config/phpize,即会提示执行完成,如果无法执行的,请确认m4与autoconf是否安装,如果未安装,可以通过yum进行安装:yum install -y m4,autoconf
5、执行./configure --with-php-config=/usr/local/php/bin/php-config(说明:/usr/local/php/为我的安装路径,如果你们自己安装的,请修改成你们自己的安装路径。
6、make && make install ,编译,安装,安装完成之后,会提示安装地址:我的地址为:/usr/php/lib/php/extensions/no-debug-zts-20131226/gd.so
7、修改php安装目录下的php.ini文件:vim /usr/local/php/bin/php.ini,在extension附件添加: extension=/usr/local/php/lib/php/extensions/no-debug-zts-20190902/gd.so
8、保存,重启apache服务即可,完成修改,pdo_mysql,同样的安
第三个问题:reCAPTCHA key:
这个问题相对简单,可以找到很多比较详细的方法:
参考链接:https://blog.csdn.net/RBPicsdn/article/details/80059132
编辑 dvwa/config/config.inc.php这个配置文件
$_DVWA[ 'recaptcha_public_key' ] = '';
$_DVWA[ 'recaptcha_private_key' ] = '';
key可以自己生成,地址是
https://www.google.com/recaptcha/admin/create
下面这个是我自己生成的,随便用
Site key:
6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb
Secret key:
6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4K
把key填上就行了
$_DVWA[ 'recaptcha_public_key' ] = '6LdJJlUUAAAAAH1Q6cTpZRQ2Ah8VpyzhnffD0mBb';
$_DVWA[ 'recaptcha_private_key' ] = '6LdJJlUUAAAAAM2a3HrgzLczqdYp4g05EqDs-W4K';
————————————————
第四个问题:其实都是权限的问题,这个也相对简单
[User: root] Writable folder /usr/local/httpd/htdocs/DVWA/hackable/uploads/:no
[User: root] Writable file /usr/local/httpd/htdocs/DVWA/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt:no
[User: root] Writable folder /usr/local/httpd/htdocs/DVWA/config:no
1、找到apache用户,一般查看进程就可以知道用户了:ps -ef | grep httpd
2、对目录添加权限(说明:httpd_user为我的apache用户):
chown httpd_user:httpd_user /usr/local/httpd/htdocs/DVWA/hackable/uploads/
chown httpd_user:httpd_user /usr/local/httpd/htdocs/DVWA/external/phpids/0.6/lib/IDS/tmp/phpids_log.txt
chown httpd_user:httpd_user /usr/local/httpd/htdocs/DVWA/config
chown命令使用请问度娘与谷歌;
3、可以使用个懒人方法:chmod 777 /路径/,不建议使用该方法。
配置完成之后,如图所示:全部搞定:
后面就点击创建或重置数据库,即可正常使用,如果创建或重置数据库过程中报错,请确定dvwa/config/config.inc.php这个配置文件数据库部分的配置,包括主机名、数据库用户名、密码等正确,并能够正常访问数据库。