简介
DVWA(Damn Vulnerable Web Application)是一个用来进行安全脆弱性鉴定的PHP/MySQL Web应用,旨在为安全专业人员测试自己的专业技能和工具提供合法的环境,帮助web开发者更好的理解web应用安全防范的过程。
DVWA共有十个模块,分别是:
1.Brute Force(暴力(破解))
2.Command Injection(命令行注入)
3.CSRF(跨站请求伪造)
4.File Inclusion(文件包含)
5.File Upload(文件上传)
6.Insecure CAPTCHA (不安全的验证码)
7.SQL Injection(SQL注入)
8.SQL Injection(Blind)(SQL盲注)
9.XSS(Reflected)(反射型跨站脚本)
10.XSS(Stored)(存储型跨站脚本)
11.CSP (内容安全策略)
kali下安装DVWA
步骤:
1. 首先去github上下载DVWA的安装包,网址为:https://github.com/ethicalhack3r/DVWA
2. 将下载好的压缩包解压并改名为dvwa,然后将其复制到 /var/www/html 文件夹中
3. 打开终端,执行以下命令:
将apache2停止:service apache2 stop
给dvwa文件夹相应的权限:chmod -R 755 /var/www/html/dvwa
启动mysql服务: service mysql start
打开mysql: mysql -u root -p
创建数据库:create database dvwa;
退出mysql:exit
启动apache2服务:service apache2 start
打开浏览器,在地址栏中输入 http://127.0.0.1/dvwa/setup.php,如果报错可能是配置文件要复制一份把.dist去掉即可
点击下方的Create/Reset Database创建(恢复)数据库
提示不能连接Mysql,因为你的数据库用的是root用户,如果你用的是MariaDB那么就不起作用,解决方案是用其他用户登录。
新建数据库用户
create user 'dvwa'@'localhost' IDENTIFIED BY ''; #创建用户dvwa,密码为空 GRANT ALL PRIVILEGES ON *.* to 'dvwa'@'localhost'; #赋权 flush privileges; quit
这里给dvwa赋权后每台电脑都可访问,但是还要开放3306端口、并在/etc/mysql/mariadb.conf.d/50-server.cnf注释掉bind-address
新建了用户,DVWA当然也要修改登录的用户名及配置,修改/var/www/html/dvwa/config/config.inc.php
把root改为dvwa,把p@ssw0rd改为空
重启apache2: service apache2 restart
这次再点击Create/Reset Database时创建完成后到http://127.0.0.1/dvwa/login.php界面
接下来就可以使用 用户名: admin 密码: password 登录进行测试了!
下面就可以用这个web项目进行扫描和攻击测试啦~
配置更改
PHP function allow_url_include: Disabled
解决方案
在php.ini配置文件中改为On
vi /etc/php/7.2/apache2/php.ini
重启服务即可
service apache2 restart
如果还是不行继续修改
vi /var/www/html/dvwa/php.ini
PHP module gd: Missing - Only an issue if you want to play with captchas
解决方案
安装php-gd模块
apt-get install -y php-gd
安装后还是Missing,不过不影响后面应用的正常使用
reCAPTCHA key: Missing
解决方案
vi /var/www/html/dvwa/config/config.inc.php
进入https://www.google.com/recaptcha/admin生成公钥和私钥
配置$_DVWA[ 'recaptcha_public_key' ] = '';
配置$_DVWA[ 'recaptcha_private_key' ] = '';
没有写权限
chmod 777 ./文件(文件夹)
改其他配置文件
解决方案
find / -name php.ini #找出所有配置文件 vi #更改所有php.ini中的allow_url_fopen和allow_url_include