[渗透测试]渗透测试靶场docker搭建 — —全集

[渗透测试]渗透测试靶场docker搭建 --- ---全集

对于初学者来说,仅仅了解漏洞原理是不够的,还需要进行实操。对于公网上的服务我们肯定不能轻易验证某些漏洞,否则可能触犯法律。这是就需要用到靶场。

  • 本文主要给大家介绍几种常见漏洞对应的靶场(个人推荐),如果大家有更好的,欢迎在评论区打出来,大家一起交流。

环境准备:docker安装

1. Windows/Mac:

mac或Windows系统推荐安装DockerDesktop可视化应用,安装成功后自带docker。

2. Linux:apt/yum直接安装

  1. apt方式安装
bash 复制代码
# 更新软件
sudo apt-get update
# 安装docker
sudo apt-get install docker.io
# 启动docker
sudo systemctl start docker
# 将docker作为服务自启(可选)
sudo systemctl enable docker
  1. yum方式安装
bash 复制代码
yum install -y yum-utils
yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo

# 安装docker
yum install docker
# 启动docker
systemctl start docker

靶场搭建

1. CSRF/SSRF漏洞:pikachu

CSRF漏洞详解:https://blog.csdn.net/weixin_45565886/article/details/147232587

SSRF漏洞详解:https://blog.csdn.net/weixin_45565886/article/details/146994934

bash 复制代码
# 安装docker
apt install docker.io

# 通过docker搭建靶场
docker run -d -p 8765:80 8023/pikachu-expect:latest
# 浏览器输入下面地址,访问靶场页面
http://localhost:8765

初始化靶场,点击启动或初始化,配置数据库信息,然后就可以选择漏洞模块进行测试:

2. SQL注入:sqli-labs

SQL注入详解:https://blog.csdn.net/weixin_45565886/article/details/144769308

bash 复制代码
# 搜索镜像
docker search sqli-labs

# 选择合适的镜像
docker pull acgpiano/sqli-labs

# 运行容器
docker run -d --name my-sqli-labs -p 80:80 acgpiano/sqli-labs 

# 访问页面准备打靶
http://localhost
# 点击页面Setup/reset Database初始化靶场数据

# 设置id,请求数据
http://localhost/Less-2/?id=1

选择关卡进行挑战:

3. XSS漏洞:xss-challenge-tour

XSS详解:https://blog.csdn.net/weixin_45565886/article/details/146162767

bash 复制代码
# 拉取镜像
docker pull c0ny1/xss-challenge-tour 

# 运行容器
docker run -dt --name xss -p 8080:80 --rm c0ny1/xss-challenge-tour 

输入http://localhost:8080/访问靶场:

4. 目录遍历漏洞:webgoat

目录遍历详解:https://blog.csdn.net/weixin_45565886/article/details/145579398

bash 复制代码
# 拉取镜像
docker pull webgoat/webgoat-8.0

docker pull webgoat/webwolf
docker pull webgoat/goatandwolf

# 启动容器
docker run -p 8888:8888 -p 8080:8080 -p 9090:9090 webgoat/goatandwolf

浏览器访问:http://127.0.0.1:8080/WebGoat,进入靶场页面:

5. 文件上传漏洞:upload-labs

文件上传漏洞详解:https://blog.csdn.net/weixin_45565886/article/details/145793742

bash 复制代码
# docker拉取镜像
docker pull cuer/upload-labs

# 运行镜像
docker run -d -p 8081:80 cuer/upload-labs

浏览器输入http://localhost:8081/ 访问靶场:

6. 全能靶场:DVWA

除了dvwa,上面的pikachu、webgoat也属于全能靶场,可以验证多种漏洞。

bash 复制代码
# 拉取dvwa镜像
sudo docker pull vulnerables/web-dvwa

# 创建docker网络
sudo docker network create dvwa-network

# 启动MySQL容器
sudo docker run --name dvwa-db --network dvwa-network -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=dvwa -d mysql:5.7
##  ------- 
如果出现报错:docker: no matching manifest for linux/arm64/v8 in the manifest list entries.
这是因为docker默认会识别我们当前CPU架构,然后拉取对应版本架构的镜像。我这里是mac m芯片,对应arm64.但
实际MySQL没有该架构的版本。因此我们分成两步走,先通过 --platform linux/x86_64 指定架构拉取镜像,然后再启动容器。
sudo docker pull --platform linux/x86_64 mysql:5.7
sudo docker run --name dvwa-db --network dvwa-network -e MYSQL_ROOT_PASSWORD=root -e MYSQL_DATABASE=dvwa -d mysql:5.7
##  -------


# 启动dvwa容器
sudo docker run --name dvwa --network dvwa-network -p 80:80 -d vulnerables/web-dvwa
# 在浏览器中访问 http://localhost/setup.php,选择"创建数据库",这将自动为你创建DVWA所需的数据库。
## 确保数据库连接信息是正确的,默认信息是:
## 数据库主机:dvwa-db
## 用户名:root
## 密码:root
## 数据库名:dvwa
http://localhost/setup.php

# 访问dvwa,初始默认用户:默认用户 admin 和密码 password
http://localhost

点击下方create,创建数据库配置:

然后访问http://localhost,初始默认用户:默认用户 admin 和密码 password:

调整漏洞难度级别:

相关推荐
怣疯knight11 分钟前
Docker Desktop 4.55.0版本安装成功教程
windows·docker
白帽黑客-晨哥19 分钟前
授权单位实战+专属应急队,湖南省网安基地如何用真实项目与应急响应锻造安全精英
web安全·网络安全·渗透测试·kali·湖南省网安基地
放寒假脚后跟v1 小时前
Pod 的 YAML 文件中 exitCode 字段的具体含义、不同取值代表的场景
运维·云原生·容器·kubernetes·k8s
东方佑1 小时前
使用Docker Compose一键部署OnlyOffice:完整指南与配置解析
运维·docker·容器
原神启动11 小时前
K8S(五)—— YAML文件解析
java·容器·kubernetes
lin张1 小时前
k8s(二)项目生命周期管理、发布策略与声明式资源管理
云原生·容器·kubernetes
赵文宇(温玉)1 小时前
Docker的价值、特点、创新与关键技术
运维·docker·容器
Zsr10232 小时前
K8S安装指南与核心操作命令汇总
云原生·容器·kubernetes
孤岛悬城2 小时前
53 k8s基础与安装
云原生·容器·kubernetes
Coder码匠3 小时前
Docker Compose 部署 Spring Boot 应用完全指南
spring boot·docker·容器