[从零搭建 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

【博客之星】GIS老矣尚能饭否?WebGIS项目实战经验与成果展示

【博客之星】GIS老矣尚能饭否?WebGIS项目实战经验与成果展示

目录 一、最前面的话 二、前言  1、关于“夜郎king” 3、GIS的“老骥伏枥” 4、WebGIS的“新程启航” 三、WebGIS技术简介 1、前、后技术简介 2、系统功能架构 四、WebGIS项目应用效果 1、应急灾害 2、交通运输 3、智慧文旅 4、其它项目 五、未来与展望 1、云计算+数据存储 2、GIS+AI融合 一、最前面的话         在这个快速迭代的数字时代,技术如同潮水般汹涌而来。每一次代码的敲击、每一行算法的优化,都是我们探索未知的足迹。技术的力量是背后清晰的思路与逻辑;技术的本质,从来不是冰冷的代码,而是温暖人心的智慧。

PCTF2025(web后半部分)

PCTF2025(web后半部分)

神秘商店 打开题目只有一个登录框 登录admin 利用全角来注册登录 后端代码有转换,全角能够绕过后端对admin的检测,然后把全角admin识别成正常的admin,造成覆盖注册,修改admin密码 注册admin,其中n为全角 利用整数溢出4294967246到50,购买flag 可以直接脚本登录 import requests def exploit(): url = "http://challenge2.pctf.top:32735" session = requests.Session() print("[+] 注册管理员账户...") users = { "username": "admin", "password": "123456" } response = session.post(f&

0. 总纲|Java Web 自研框架 18 年Java架构决策复盘

0. 总纲|Java Web 自研框架 18 年Java架构决策复盘

深耕政务信息化 20 年,自研 Java Web 框架支撑省级新农保、全国首例跨省医保结算等核心民生系统,稳定运行 18 年。 本系列不讲空泛理论,只复盘真实生产环境下的架构决策、踩坑经历、落地方案,不求优雅,但求能跑、能扛、能维护。 在长期维护政务系统的过程中,我逐渐形成一套轻量、稳定、无侵入、可长期演进的架构思路。 这套框架没有依赖流行全家桶,而是围绕业务痛点一点点打磨,最终支撑了海量高并发、高可靠的民生业务。 本系列将从以下 10 个核心决策展开: 1. 放弃 Spring,手写轻量 IOC 容器 2. 注解路由 + 参数路由,实现新老代码平滑迁移 3. 统一入参解析,前后端彻底解耦 4. CGLIB + 责任链实现轻量 AOP,搞定事务、日志、

SpringBoot+Vue 针对老年人景区订票系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

SpringBoot+Vue 针对老年人景区订票系统平台完整项目源码+SQL脚本+接口文档【Java Web毕设】

摘要 随着老龄化社会的加速发展,老年人旅游需求日益增长,但传统景区订票系统往往操作复杂,对老年用户不够友好。针对这一问题,设计并实现了一款专为老年人优化的景区订票系统平台。该系统通过简化操作流程、提供大字体显示、语音引导等功能,降低老年人使用门槛,提升用户体验。同时,系统整合景区资源,实现门票在线预订、订单管理、个人信息维护等功能,为老年人提供便捷的旅游服务。关键词:老龄化社会、景区订票系统、用户体验、在线预订、旅游服务。 本系统基于SpringBoot和Vue技术栈开发,采用前后端分离架构,后端使用SpringBoot提供RESTful API接口,前端通过Vue.js实现动态交互。数据库采用MySQL,结合Redis缓存提升系统性能。系统功能涵盖用户注册登录、景区信息展示、门票预订、订单支付、个人中心等模块,并针对老年人需求优化了界面设计和交互逻辑。系统接口文档完整,便于后续扩展和维护。关键词:SpringBoot、Vue.js、MySQL、Redis、RESTful API、老年人优化。 数据表设计