[从零搭建 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 部署的流程,本文在此基础上进行了实践补充。

Read more

AI编程实战 : 使用 TRAE CN 将 MasterGo 设计稿转化为前端代码

AI编程实战 : 使用 TRAE CN 将 MasterGo 设计稿转化为前端代码

文章目录 * 什么是 MCP * 前置条件 * 1. 账号权限 * 2. 环境要求 * 3. 设计稿准备 * MasterGo AI Bridge 支持的能力 * 操作步骤 * 第一步: 安装/升级 TRAE CN IDE * 第二步: 获取 MasterGo 的 Personal Access Token * 第三步: 添加 MCP Server * 第四步: 创建自定义智能体(可选) * 第五步: 调用 MCP 生成前端代码 * 5.1 复制 MasterGo 设计稿链接 * 5.2 在 TRAE CN IDE

前端国际化全流程落地:TSF / TSP 翻译工具实战指南(Vue 版)

导读 本文详细讲解前端项目国际化翻译的全流程落地方案,涵盖「翻译平台配置→工具初始化→开发实现→发布上线→回滚操作」核心环节,重点介绍 TSF 翻译工具、TSP 平台的实操配置与最佳实践,解决翻译文件管理、多环境发布、缓存处理等核心问题,适配 Vue 技术栈的国际化开发场景。 一、整体概览 api请求服务 返回翻译文件 业务开发 业务开发 npx spc-tsf update npx spc-tsf upload npx spc-tsf export 终端 i18n, $gt, tsp 平台初始化,集成翻译 TSP 平台对 key 进行分环境版本管理,包括发布,回滚操作 短文案,不易变的文案,使用

前端实现B站视频画中画功能 - 完整代码实现主页面和小窗同步视频控制功能

前端实现B站视频画中画功能 - 完整代码实现主页面和小窗同步视频控制功能

🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志 🎐 个人CSND主页——Micro麦可乐的博客 🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战 🌺《RabbitMQ》专栏19年编写主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战 🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解 🌛《开源项目》本专栏主要介绍目前热门的开源项目,带大家快速了解并轻松上手使用 🍎 《前端技术》专栏以实战为主介绍日常开发中前端应用的一些功能以及技巧,均附有完整的代码示例 ✨《开发技巧》本专栏包含了各种系统的设计原理以及注意事项,并分享一些日常开发的功能小技巧 💕《Jenkins实战》专栏主要介绍Jenkins+Docker的实战教程,让你快速掌握项目CI/CD,是2024年最新的实战教程 🌞《Spring Boot》专栏主要介绍我们日常工作项目中经常应用到的功能以及技巧,代码样例完整 👍《Spring Security》专栏中我们将逐步深入Spring Security的各个

参数验证 @Validated 和 @Valid 的区别:Java Web 开发必备详解

1. 引言:参数验证的重要性与 Java Bean Validation 规范 在 Java Web 开发中,参数验证是保障系统安全与数据完整性的重要防线。无论是前端传递的用户输入、第三方接口的调用参数,还是服务层内部方法的参数,都需要经过严格的校验,避免脏数据进入核心业务逻辑,甚至引发 SQL 注入、XSS 攻击等安全漏洞。 传统的参数验证方式是在业务代码中手动编写 if-else 判断逻辑,这不仅繁琐、重复,而且难以维护。为了解决这一痛点,Java 社区制定了 Bean Validation 规范(JSR 303,JSR 349,JSR 380),提供了一套基于注解的声明式验证框架。开发者只需在 JavaBean 的属性上添加 @NotNull、@Size、@Min 等约束注解,然后在验证点触发校验即可。 在