DVWA(Damn Vulnerable Web Application)是一个包含多种常见的Web漏洞(如SQL注入、XSS、文件上传漏洞等)用于学习和练习Web安全的漏洞测试靶场平台。本章节通过部署dvwa靶场熟悉linux系统应用程序部署、数据库部署及基本操作。
1.环境准备
DVWA靶场需要以下组件:
- Web服务器(如Apache或Nginx)
- PHP(建议PHP 5.4以上)
- MySQL数据库
备注:以下操作是在基于Debian系统(Ubuntu)上安装
1.1 安装Apache
sudo apt update
sudo apt install apache2
1.2 安装PHP
sudo apt install php libapache2-mod-php php-mysql php-gd php-curl
1.3 安装MySQL
sudo apt install mysql-server
1.4 安装PHPMyAdmin(可选)
sudo apt install phpmyadmin
2.下载和配置DVWA
2.1 下载DVWA
cd /var/www/html
sudo git clone https://github.com/digininja/DVWA.git
sudo chown -R www-data:www-data DVWA
2.2 配置DVWA
- 复制配置文件:
cd DVWA/config
sudo cp config.inc.php.dist config.inc.php
- 编辑配置文件:
sudo nano config.inc.php
- 修改以下内容:
$_DVWA['db_user'] = 'dvwa';
$_DVWA['db_password'] = 'password';
$_DVWA['db_database'] = 'dvwa';
- 修改PHP配置:
编辑 `/etc/php/7.x/apache2/php.ini`(根据实际PHP版本修改路径):
sudo nano /etc/php/7.4/apache2/php.ini
修改以下配置:
allow_url_include = On
allow_url_fopen = On
- 重启Apache:
sudo systemctl restart apache2
3.配置MySQL数据库
3.1 创建数据库和用户
- 登录MySQL:
sudo mysql -u root -p
- 创建数据库和用户:
CREATE DATABASE dvwa;
CREATE USER 'dvwa'@'localhost' IDENTIFIED BY 'password';
GRANT ALL PRIVILEGES ON dvwa.* TO 'dvwa'@'localhost';
FLUSH PRIVILEGES;
EXIT;
3.2 初始化DVWA数据库
- 访问DVWA的安装页面:
http://your_server_ip/DVWA/setup.php
- 点击“Create / Reset Database”按钮,初始化数据库。
4.访问DVWA
- 打开浏览器,访问:
http://your_server_ip/DVWA
- 使用默认账号登录:用户名:admin密码:password
5.安全注意事项
DVWA是一个故意设计为不安全的应用程序,因此在实际环境中使用时需注意以下事项:
5.1 限制访问
- 使用防火墙限制访问:
sudo ufw allow from your_ip to any port 80
sudo ufw enable
- 配置Apache访问控制:
编辑 `/etc/apache2/sites-available/000-default.conf`:
Order deny,allow
Deny from all
Allow from your_ip
5.2 修改默认密码
- 登录DVWA后,修改默认密码。
5.3 定期备份
- 定期备份数据库和配置文件。
6.常见问题解决
6.1 PHP函数被禁用
如果遇到allow_url_include或allow_url_fopen被禁用的问题,确保在php.ini中启用这些函数。
6.2 数据库连接失败
检查config.inc.php中的数据库配置是否正确,并确保MySQL服务已启动。
6.3 文件权限问题
确保DVWA目录的权限正确:
sudo chown -R www-data:www-data /var/www/html/DVWA
总结
通过以上步骤,你可以在Linux系统上成功搭建DVWA环境。DVWA是一个非常好的工具,用于学习和实践Web安全技术。请确保仅在受控环境中使用,避免暴露在公网中。