簡介
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