#自己自学网络安全,查了很多,大多数都建议新手部署在kali上,对初学者比较友好#
介绍:
DVWA(Damn Vulnerable Web Application,直译“该死的脆弱Web应用”)是一个专门设计用于网络安全学习和渗透测试的PHP/MySQL Web应用程序。它包含多种常见的Web漏洞,供安全研究人员、开发者和学生练习漏洞挖掘、渗透测试和防御技术。
1. DVWA 的主要特点
✅ 故意设计漏洞:包含SQL注入、XSS、CSRF、文件上传漏洞等常见安全风险。
✅ 多种安全等级:可调整难度(Low/Medium/High/Impossible),适合不同水平的学习者。
✅ 开源免费:基于PHP/MySQL,可本地部署(如Kali Linux、Docker等)。
✅ 适合教学:广泛用于CTF比赛、网络安全课程及渗透测试培训。
2. DVWA 包含的漏洞类型
漏洞类型 | 说明 |
---|---|
SQL注入(SQLi) | 攻击者通过恶意SQL语句操纵数据库(如获取管理员密码)。 |
XSS(跨站脚本) | 注入恶意JavaScript代码,盗取Cookie或劫持用户会话。 |
CSRF(跨站请求伪造) | 诱骗用户在已登录状态下执行非预期操作(如修改密码)。 |
文件上传漏洞 | 上传恶意文件(如PHP Webshell)控制服务器。 |
命令注入(Command Injection) | 通过系统命令执行漏洞获取服务器权限(如; ls /etc )。 |
暴力破解(Brute Force) | 测试弱密码(如admin/123456)破解登录。 |
文件包含(LFI/RFI) | 读取服务器敏感文件(如/etc/passwd )或远程执行代码。 |
不安全的验证机制 | 如弱密码、未加密传输等。 |
一.安装Apache,Mysql,PHP
命令:sudo apt update
sudo apt install -y apache2 mariadb-server php php-mysqli php-gd libapache2-mod-php
如果谈这个是因为PHP他有两个版本需要你选择,所以调整一下命令就可以了
apt install -y apache2 mariadb-server php php8.4-mysql php-gd libapache2-mod-php
二.开启Apache和Mysql
命令:
sudo systemctl start apache2 # 启动Apache
sudo systemctl start mariadb # 启动MySQL(MariaDB替代传统MySQL)
sudo systemctl enable apache2 mariadb # 设置开机自启
三.下载DVWA
命令:
cd /var/www/html
sudo git clone https://github.com/digininja/DVWA.git
sudo mv DVWA dvwa # 可选:重命名为dvwa(方便访问)
sudo chown -R www-data:www-data /var/www/html/dvwa # 设置权限
1. cd /var/www/html
这个命令的作用是将当前工作目录切换到/var/www/html
。在许多基于 Linux 的 Web 服务器环境中,/var/www/html
通常是默认的 Web 根目录,所有可供访问的 Web 文件都会存放在这里。
2. sudo git clone https://github.com/digininja/DVWA.git
sudo
:以超级用户权限执行命令,因为克隆仓库到系统目录可能需要管理员权限。git clone
:这是 Git 版本控制系统的一个命令,用于从远程仓库复制项目到本地。https://github.com/digininja/DVWA.git
:这是 DVWA 项目在 GitHub 上的仓库地址。执行该命令后,会将 DVWA 项目的代码下载到/var/www/html
目录下。
3. sudo mv DVWA dvwa
(可选)
sudo
:同样是以超级用户权限执行命令。mv
:是 Linux 系统中的移动或重命名命令。这里将克隆下来的DVWA
目录重命名为dvwa
,这样做的好处是在后续访问时可能会更方便,例如在浏览器中输入 URL 时更容易记忆。
4. sudo chown -R www-data:www-data /var/www/html/dvwa
sudo
:以超级用户权限执行命令。chown
:用于更改文件或目录的所有者和所属组。-R
:递归选项,表示对指定目录及其所有子目录和文件都应用相同的更改。www-data:www-data
:www-data
通常是 Web 服务器(如 Apache)运行时使用的用户和组。将/var/www/html/dvwa
目录及其内容的所有者和所属组都设置为www-data
,可以确保 Web 服务器有足够的权限来访问和操作这些文件。
四.配置MySQL数据库
先启动Apache和数据库mariadb
# 查看启动状态
service apache2 status
# 启动apache2
service apache2 start
# 查看现在状态
service apache2 status
# 查看启动状态
service mariadb status
# 启动mariadb
service mariadb start
在浏览器输入 http://ip (自己的ip地址)
显示如上就可以了
在终端输入:mysql
创建配置数据库:
# 创建数据库dvwa
create database dvwa;
# 创建数据库用户dvwa,密码是p@ssw0rd
create user dvwa@localhost identified by 'p@ssw0rd';
# 分配权限,可以远程登录
grant all on dvwa.* to dvwa@localhost;
# 刷新权限
flush privileges;
五.配置DVWA
# 到/var/www/html/DVWA目录下
cd /var/www/html/DVWA
# 重命名配置文件
cp config/config.inc.php.dist config/config.inc.php
六.初始化数据库
登录网址:http://ip/DVWA/setup.php 点击右下角Create/Reset Database进行初始化,点击后会跳转到登陆页面
用户名:admin
密码:password
进入这个界面就表示配置部署完成。