[从零搭建 Web 漏洞靶场:VAuditDemo 在 CentOS 上的部署实战]

//VAuditDemo是一个专门用于Web漏洞攻防演练的综合性靶场//

环境准备:

  • 操作系统:CentOS 7/8
  • Web 环境:XAMPP(已安装并配置好)
  • 靶场源码:VAuditDemo

(1)官网下载安装包https://github.com/1stPeak/VAuditDemo (点击绿色按钮)

(2)使用xftp将安装包上传到CentOS的“/opt/lampp/htdocs”目录下(直接从拖动文件夹到右边)

下载后会得到一个 VAuditDemo-master.zip 文件,里面包含两个核心目录:

  • VAuditDemo_Release —— 发布版(用于正式部署)
  • VAuditDemo_Debug —— 调试版(带详细错误提示,适合学习)

(3)解压缩,并修改文件夹名称为“vaudit”

cd  /opt/lampp/htdocs unzip VAuditDemo-master.zip mv VAuditDemo-master vaudit

(4) 确认 VAuditDemo_Release 在哪里,将发布版的文件移到当前目录

find . -name "VAuditDemo_Release" -type d mv ./VAuditDemo-master/VAuditDemo_Release/* ./

验证 mv 命令是否成功,可以使用以下两个命令

# 查看源目录是否还有内容 ls -la ./VAuditDemo-master/VAuditDemo_Release/

如果目录为空(只有 . 和 ..),说明所有文件都被移动了

或:

# 查看当前目录的文件和目录数量 ls -la

若成功应该能看到 index.phpsysinstall 等 VAuditDemo 的核心文件

(5)创建“uploads”目录,并赋予其“读写执行”权限,赋予“sys”目录“读写执行”权限

# 1. 创建 uploads 目录 mkdir uploads # 2. 设置 uploads 目录权限(读写执行) chmod 777 uploads/ # 3. 设置 sys 目录权限(读写执行) chmod 777 sys/

执行以下命令验证权限是否正确设置:

# 查看目录和文件的权限 ls -ld uploads/ ls -ld sys/ 

(6)设置目录,VAuditDemo需要安装在网站的根目录下,要求根目录设置为/opt/lampp/htdocs/vaudit目录,采用在系统中添加新的VHosts虚拟主机来处理

⚠️先备份 ⚠️先备份 ⚠️先备份

cp httpd.conf httpd.conf.bak

① 修改“/opt/lampp/etc/httpd.conf”文件,在该文件中按“/”搜索“Listen 80”,下面添加VAudit端口“Listen 81”,再按“/”搜索“vhosts”,将这一行前面的“#”删除,保存退出(按“i”进行编辑,esc退出编辑,输入”:wq”退出)

sudo vi /opt/lampp/etc/extra/httpd-vhosts.conf 

②修改“/opt/lampp/etc/extra/httpd-vhosts.conf”文件,用“#”注释掉已有的“*:80”模板内容,再添加新增监听端口“81”,设置网站根目录“/opt/lampp/htdocs/vaudit”

验证配置

#检查 Apache 配置文件语法 sudo /opt/lampp/bin/apachectl -t

输出 Syntax OK即成功

(7)设置防火墙,打开81端口

firewall-cmd --permanent --add-port=81/tcp systemctl restart firewalld

(8)修改“/opt/lampp/htdocs/vaudit/sys/config/php”文件,并配置数据库密码

# 查找配置文件 find /opt/lampp/htdocs/vaudit -name "config.php" -o -name "config.inc.php" 2>/dev/null
# 编辑配置文件 sudo vi /opt/lampp/htdocs/vaudit/sys/config.php

(9)重启XAMPP

#重启XAMPP /opt/lampp/xampp restart

警告信息不影响使用,但可以修复,以下是解决方法

# 修复 my.cnf 文件权限(移除全局写权限) sudo chmod 644 /opt/lampp/etc/my.cnf # 验证权限已修复 ls -la /opt/lampp/etc/my.cnf # 检查 Apache 和 MySQL 是否正常运行 sudo /opt/lampp/lampp status # 检查 81 端口是否监听 sudo netstat -tlnp | grep :81

⚠️81 端口还没有监听,说明 Apache 没有加载虚拟主机配置①

①检查 Apache 配置

# 1. 检查 httpd.conf 中是否有 Listen 81 sudo grep "Listen" /opt/lampp/etc/httpd.conf | grep -v "^#" # 2. 检查虚拟主机配置是否存在且正确 sudo cat /opt/lampp/etc/extra/httpd-vhosts.conf # 3. 检查 Include 语句 sudo grep "vhosts" /opt/lampp/etc/httpd.conf | grep -v "^#"

②重新配置

# 1. 确保 Listen 81 存在 sudo sed -i '/^Listen 80$/a Listen 81' /opt/lampp/etc/httpd.conf # 2. 创建干净的虚拟主机配置 sudo tee /opt/lampp/etc/extra/httpd-vhosts.conf << 'EOF' NameVirtualHost *:81 <VirtualHost *:81> DocumentRoot "/opt/lampp/htdocs/vaudit" ServerName localhost <Directory "/opt/lampp/htdocs/vaudit"> Options Indexes FollowSymLinks AllowOverride All Require all granted </Directory> </VirtualHost> EOF # 3. 确保 Include 未被注释 sudo sed -i 's/^#Include etc\/extra\/httpd-vhosts.conf/Include etc\/extra\/httpd-vhosts.conf/' /opt/lampp/etc/httpd.conf # 4. 验证配置 sudo /opt/lampp/bin/apachectl -t

③如果语法正确,重启并验证

# 1. 完全停止 Apache sudo /opt/lampp/lampp stopapache # 2. 手动启动 Apache 查看错误信息 sudo /opt/lampp/bin/apachectl start # 3. 检查端口 sudo netstat -tlnp | grep httpd

可以看到

✅ Apache 正常运行

✅ 80 端口监听中

✅ 81 端口监听中

✅ VAuditDemo 虚拟主机已配置

(10)访问http://192.168.x.x/vaudit/install/install.php(CentOS服务器IP地址以实际IP地址填写)

⚠️404 Not Found → 检查是否混淆了端口与路径,确认访问地址为 IP/vaudit/install/install.php

底部输入数据库密码并安装

(11)访问http://192.168.x.x:81,打开界面如下

恭喜😃,安装成功

**参考**:《Web安全攻防实战教程》中关于 VAuditDemo 部署的流程,本文在此基础上进行了实践补充。

Could not load content