CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker)

这篇具有很好参考价值的文章主要介绍了CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

目录

前言

靶场介绍

DVWA

SQLi-LABS

upload-labs

靶场搭建

CentOS 7 虚拟环境准备

靶场环境部署

系统环境配置

Docker 环境配置

下载 Docker

配置 Docker 镜像源

启动 docker 

靶场配置

靶场镜像抓取

创建并运行 docker 容器

靶场的访问 & 靶场的初始化

DVWA

靶场重置

SQLi-LABS

靶场重置

upload-labs

靶场重置 

总结

补充:docker 靶场高级使用

进入 docker 靶场

docker-宿主机之间 文件复制


前言

本文主要是介绍在 CentOS 7 环境下,利用 docker 部署 CTF 常见三大模拟靶场,分别是综合型靶场 DVWA ;SQL 注入靶场 SQLi-LABS;文件上传靶场 upload-labs。

部署的方式是 通过 VM 虚拟机软件,搭建 CentOS 7 环境,利用 Docker 直接拉取靶场环境进行靶场部署。

靶场介绍

DVWA

DVWA 全称为 Damn Vulnerable Web Application,意为存在糟糕漏洞的web应用,它是一个基于PHP/MySQL开发的存在糟糕漏洞的web应用,旨在为专业的安全人员提供一个合法的环境,来测试他们的工具和技能。

该靶场是一个综合型靶场,靶场内集成了暴力破解,文件上传,文件包含,SQL注入,XSS 攻击等常见漏洞,且设有高中低三档难度,非常适合初学者做入门实操。

SQLi-LABS

SQLi-LABS 靶场是由一位印度程序员开发,用来专门学习sql注入的一个练习平台。该靶场共有 65 关,模拟了大部分 SQL 注入场景。

upload-labs

upload-labs 是一个使用 php 语言编写的,专门收集渗透测试和 CTF 中遇到的各种上传漏洞的靶场。

靶场搭建

CentOS 7 虚拟环境准备

详细请看我上一篇文章:渗透靶场环境准备

准备一台 CentOS 7 虚拟机

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

靶场环境部署

以 root 权限连接服务器

系统环境配置

关闭防火墙,并禁止防火墙启动

systemctl stop firewalld.service
# 关闭防火墙

systemctl disable firewalld.service
# 禁止防火墙开机自启动

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

关闭 SELinux 安全子系统

vi /etc/selinux/config
# 将 SELINUX=enforcing 修改为 SELINUX=disabled

reboot
# 重启虚拟机使配置生效

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

重启虚拟机后,输入以下命令判断配置是否生效,如图所示,需要两个都显示关闭

systemctl status firewalld
# 查看系统防火墙状态

getenforce
# 查看 SELinux 状态

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

Docker 环境配置

该步骤需要使用 YUM 仓库,建议进行此步骤前先将系统的 YUM 仓库源换为国内源,不然可能会出现下载时间过长的情况,可以通过下方命令进行查看

yum repolist enabled

具体操作步骤请看我上一篇文章:渗透靶场环境准备 CentOS 7 配置 - 更换 YUM 镜像源

下载 Docker

执行下方命令,下载 Docker 环境

yum install -y yum-utils
# 下载 yum-utils 软件包,它是yum软件包管理器的扩展

yum-config-manager \
    --add-repo \
    https://download.docker.com/linux/centos/docker-ce.repo
# 配置 docker 镜像仓库

yum install docker-ce docker-ce-cli containerd.io docker-compose-plugin -y
# 下载 docker 以及相关依赖

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

配置 Docker 镜像源

docker 并没有设置镜像源,需要将其改为国内镜像源

vi /etc/docker/daemon.json
# 写入内容

{
  "registry-mirrors": [
    "https://dockerproxy.com",
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com",
    "https://ccr.ccs.tencentyun.com"
  ]
}

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

启动 docker 

执行下方命令,启动 docker,并将 docker 设置为开机自启动

systemctl start docker
# 启动 docker

systemctl enable docker
# 设置 docker 开机自启动

systemctl restart docker
# 重启 docker

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

靶场配置

靶场镜像抓取

利用 docker 命令抓取靶场镜像

docker pull infoslack/dvwa
# 抓取 dvwa 靶场

docker pull acgpiano/sqli-labs
# 抓取 sqli-labs 靶场

docker pull c0ny1/upload-labs
# 抓取 upload-labs 靶场 

抓取镜像的时候会比较久,建议整一杯茶边喝边等 ( •̀ ω •́ )✧

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

查看下载好的镜像

docker images

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

创建并运行 docker 容器

docker run --restart=always --name dvwa -it -dp 9001:80 infoslack/dvwa
docker run --restart=always --name sqli-labs -it -dp 9002:80 acgpiano/sqli-labs
docker run --restart=always --name upload-labs -it -dp 9003:80 c0ny1/upload-labs

命令解释:以第一条为例

命令 功能
docker run 启动容器
--restart=always 开机自启动,若启动失败则一直启动
--name dvwa 设置容器名称(这里设置容器名称为 dvwa)
-it 以交互模式运行容器并为容器重新分配一个伪输入终端
-d 后台运行容器
-p 9000:80 将主机的端口映射到容器的一个端口,即:主机端口:容器内 部的端口
infoslack/dvwa 镜像名称

docker 通俗一点来讲,有点像是 Linux 平台下的虚拟机,和 VMware 类似

执行命令

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

查看 docker 容器是否创建

docker ps

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

靶场的访问 & 靶场的初始化

靶场访问方式为:[IP地址]:[映射端口号]

DVWA

浏览器访问: [IP地址]:9001

点击 “Create / Reset Database” 进行初始化

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

点击完后会出现下图内容,此时页面会自动跳转,如果不自动跳转的话,可点击 “login” 进行手动跳转

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

出现界面则环境初始化成功,初始账户密码为 admin/password

当然,可以通过密码爆破的方式把账户密码弄出来 (~ ̄▽ ̄)~

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

登录后的页面如下图

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

靶场重置

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

SQLi-LABS

浏览器访问: [IP地址]:9002

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

点击 “Setup/reset Database for labs” 创建环境,出现下图界面即创建成功

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

靶场界面如下图

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

靶场重置

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

upload-labs

浏览器访问: [IP地址]:9003

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

该靶场默认并没有上传目录文件,需要我们点击 “清空上传文件” 按钮进行创建

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

靶场重置 

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

总结

至此,靶场环境就已经部署好了,之后的使用,就直接开启虚拟机,等待终端显示IP地址,然后通过  [IP地址]:[映射端口号]  进行访问即可,基本不需要登录到 CentOS 7 虚拟机内,如果靶场坏了的话,直接通过靶场的重置按钮一键恢复即可。接下来介绍如何进入 docker 容器内,查看靶场源代码,如果自己觉得不需要这个操作,可直接跳过。

补充:docker 靶场高级使用

进入 docker 靶场

docker exec -it [容器IP或容器名称] /bin/sh
# 容器ID 和 容器名称 可以通过命令 docker ps 查询得到

exit
# 退出 docker 容器

举例:DVWA 靶场

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

docker-宿主机之间 文件复制

docker cp [宿主机文件路径] [容器IP或容器名称]:[容器路径]
# 将文件复制进 docker 容器内,
# 容器内路径如果不记得的话,直接整到 / 目录,复制进去后在进入容器慢慢找

docker cp [容器IP或容器名称]:[容器文件路径] [宿主机文件保存路径]
# 将文件 docker 容器内复制出来
# 宿主机文件保存路径建议直接 . 代替,“.” 表示当前目录,复制到当前目录下

举例:DVWA 靶场

将 anaconda-ks.cfg 文件复制到 dvwa 容器内

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全

将 dvwa 容器内的 run.sh 文件复制到宿主机

CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker),渗透测试,靶场搭建,网络安全,web安全,linux,centos,系统安全文章来源地址https://www.toymoban.com/news/detail-819895.html

到了这里,关于CTF 三大测试靶场搭建:DVWA、SQLi-LABS、upload-labs 靶场部署教程(VM + CentOS 7 + Docker)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于Sqli-Labs靶场的SQL注入-17~22关

            首先我们进入这一关:         可以看到这一关让你进行“密码重置”,我们这里首先随便输入一个账户和密码进行测试。我这里用户名输入1,密码输入1。观察页面回显:         可以看到页面回显对我们很不友好,对于一个搞网安的,这能忍?         我们进

    2024年02月07日
    浏览(48)
  • sqli-labs-master靶场搭建以及报错解决

    一.前提准备 1.下载:sqli-labs-master。 mirrors / audi-1 / sqli-labs · GitCode 2.安装PHP study。 Windows版phpstudy下载 - 小皮面板(phpstudy) (xp.cn) 二.搭建靶场 1.启动phpstudy。 2.将sqli-labs-master.zip解压到phpstudy_proWWW,为访问方便我这将其更名为sqli。  3.打开我们的sqli。    4.在url中的localhost后输

    2024年02月08日
    浏览(42)
  • sqli-labs-master靶场搭建详细过程(附下载链接)

    首先进行搭建准备,分别点击下载SQLi-LABS 以及phpstudy,下载网址如下。 将下载好的”sqli-labs-master.zip”进行解压。 将解压缩好的“sqli-labs-master”文件夹移动到“WWW”目录下。 在“WWWsqli-labssql-connections”路径下找到“db-creds.inc”文件。 打开后找到“$dbpass =”,在后面输入数

    2024年02月11日
    浏览(46)
  • sqli-labs例题复现

    less-1.1 在源码中$id=$_GET[\\\'id\\\'];之后加入如下代码: 1.分析正则 第一个b匹配select单词边界,sS匹配到所有字符,最后一个b匹配到from单词边界。 select...from被过滤,失效。 2.科学计数法的引入 如果可以存在一个,可以加在from前面,不会影响语句执行,从而实现绕过正则

    2024年02月10日
    浏览(47)
  • sqli-labs通关详解

    找注入点,当输入id=1 and 1=2–+时没有变化,尝试单引号闭合找到注入类型 字符型注入,单引号闭合 判断字段数 找回显点 发现有两个回显点 开始信息收集(注意union前后格式要相同) 开始逐级爆破 爆破数据库 看源码或者尝试,没有闭合方式,说明为数字型注入 尝试找到注入

    2023年04月15日
    浏览(44)
  • SQLI-labs-第一关

    目录 知识点:单引号字符型注入 1、根据提示,为get注入,在url中输入内容​编辑  2、判断注入点  3、判断目前该表的字段数  4、判断回显位置 5、爆库名 6、爆表名   7、爆字段名  8、爆值 知识点:单引号字符型注入 思路: 1、根据提示,为get注入,在url中输入内容  

    2024年02月11日
    浏览(44)
  • Sqli-Labs 通关笔记

    创建网站时选择php版本为5.x 修改./sql-connections/db-creds.inc 修改数据库用户名和密码,下面的数据库名不用管 任务目标:获取表名 Less-1 GET - Error based - Single quotes - String(基于错误的GET单引号字符型注入) sql查询语句为 SELECT * FROM users WHERE id=\\\'$id\\\' LIMIT 0,1 输入 ?id=-1\\\' ,报错语句为

    2023年04月20日
    浏览(41)
  • sqli-labs部分关思路

    目录 updatexml 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 25a 26 26a 27 27a 28 28a 问题:你了解sql注入吗 答:由于程序过滤不严谨,用户异常输入,这些输入会导致数据库异常查询,最终导致sql注入 mysql三种注释符: --+ # /**/ updatexml() 这个函数作用是替换数据,三个参数对应

    2024年02月09日
    浏览(43)
  • sqli-labs关卡之一(两种做法)

    目录 一、布尔盲注(bool注入)  二、时间盲注(sleep注入) 页面没有报错和回显信息,只会返回正常或者不正常的信息,这时候就可以用布尔盲注 布尔盲注原理是先将你查询结果的第一个字符转换为ascii码,再与后面的数字比较,如果为真,整个查询条件就为真,返回正常的结果

    2024年02月09日
    浏览(113)
  • sqli-labs基础篇【第七关】详细解析

      从下面的注入测试来看,只有两种输出结果   如果sql执行了,就会输出“You are in… Use outfile…”,反之输入“You have an error in your SQL syntax” 查看是否存在双引号注入 正常输出,说明有执行,存在双引号注入 查看是否存在闭合特殊符号 推测注入点:双引号+两个闭合

    2023年04月15日
    浏览(40)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包