首页 > 其他分享 >记录个人第一次搭建CTF平台(H1ve)

记录个人第一次搭建CTF平台(H1ve)

时间:2024-06-30 18:32:15浏览次数:1  
标签:容器 www H1ve flag CTF html var docker 搭建

准备工作

安装docker
sudo apt-get update
sudo apt-get install -y docker.io
这里要耐心等待

systemctl start docker
systemctl enable docker
设置开机就启动docker

systemctl enable docker
查看docker是否安装成功

docker -v
验证一下是否装好

pip3 install docker-compose -i https://pypi.tuna.tsinghua.edu.cn/simple
安装docker-compose

然后是安装H1ve
git clone https://github.com/D0g3-Lab/H1ve.git
先进入到H1ve目录
然后docker-compose -f single.yml up
拉取镜像
docker update --restart=always $(docker ps -aq)
此命令将各个容器都设置成自启动

CTFd-Owl

参考:https://5ime.cn/h1ve.html

后台导航栏-->Plugins-->CTFd-Owl 或者 靶场地址/plugins/ctfd-owl/admin/settings

Docker Settings

  • Docker Flag Prefix:动态生成的flag前缀
  • Docker APIs URL:API名字(默认为unix://var/run/docker.sock)
  • Max Container Count:最大启动容器数量(默认无限制)
  • Max Renewal Time:最大容器延长时间(超过将无法延长,达到时间后会自动摧毁)

FRP Settings

  • FRP Http Domain Suffix:FRP域名前缀(如开启动态域名转发必填)
  • FRP Direct Ip Address FRP:frp服务器IP
  • FRP Direct Minimum Port:最小端口
  • FRP Direct Maximum Port:最大端口
  • FRP Config Template Frpc:热重载配置头模版(如不会自定义,尽量按照默认配置)
[common]
token = random_this
server_addr = frps
server_port = 80
admin_addr = 0.0.0.0
admin_port = 7400

题目编写

目录结构
test # 题目存放文件夹必须小写英文
├─ Dockerfile
├─ docker-compose.yml
├─ files
│    ├─ index.php 
│    └─ start.sh
└─ flag
Dockerfile
FROM php:7.3-apache
COPY files /var/www/html
RUN chmod 755 /var/www/html && \
    chown root:root /var/www/html && \
    chmod +x /var/www/html/start.sh
CMD /var/www/html/start.sh
EXPOSE 80
docker-compose.yml
version: '2'
services:
  service: 
    # build 该置顶目录下的dockerfile
    build: .
    # image 指定build Dockerfile生成镜像的名称
    image: test
    ports:
      - 9999:80
    volumes:
        # 挂载的 Flag
        - "$PWD/flag:/flag"
    tty: true
    networks:
      - net

networks:
    # 配置docker network
    net: 
      external: 
         name: h1ve_frp_containers
files/start.sh
#!/bin/bash

v=`cat /flag`
cat /var/www/html/index.php | sed -i "s/flag{test_flag}/$v/" /var/www/html/index.php # 用于正则匹配flag并替换

apache2-foreground
files/index.php
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>测试题目</title>
</head>
<body>
flag{test_flag}<!--这里会被start.sh替换成动态flag-->
</body>
</html>
flag
flag{this_test_flag}

docker搭建环境部署ctf题目

参考:https://blog.csdn.net/q20010619/article/details/108587879

拉取镜像

docker search lamp
docker pull tutum/lamp #随便pull了一个lamp
docker images 查看镜像

启动容器

docker run -it -d --name=myweb  -p [host port]:[docker port] [image]
#映射端口前首先确定端口没有被占用lsof -i :8080
#-d //容器后台运行。
#-p //指定映射端口。
#--name=myweb  //容器命名
#-it //是以交互模式运行容器
eg:
docker run -it -d --name=myweb -p 78:80 -p 3306:3306 docker.io/linode/lamp
将服务器apach2的78端口映射到docker的80端口,将3306mysql映射到docker上3306端口

重启

systemctl restart docker

环境已经搭建完毕,可以将ctf题目源码拷贝到container的主目录中

docker cp ez_php a9277ea0259a:var/www/html
#docker cp [本地路径] [container id]:[container 路径]

进入docker container

docker exec -it 763c32535da7 /bin/bash
#如果从这个容器退出,不会导致容器的停止,推荐使用 docker exec
#-i //让容器的标准输入保持打开。
#-t //让docker分配一个伪终端并绑定到容器的标准输出上。

进入容器中的数据库,创建好ctf题目需要的数据库、数据表等等(数据库密码为空)

cd var/www/html
mysql -uroot -p

之后访问网站就行

导出容器

docker export 1e560fca3906 > example.tar

标签:容器,www,H1ve,flag,CTF,html,var,docker,搭建
From: https://www.cnblogs.com/m1xian/p/18276787

相关文章

  • 搭建Renesas R7FA8D1BHECBD-BTB的开发调试环境(DAP-LINK: N32G45XVL-STB)
    目录概述1软硬件1.1软硬件环境信息1.2开发板信息1.3调试器信息2FSP和KEIL产生测试项目2.1FSP生成项目2.2Keil中配置 3 硬件连接框图4一个测试案例4.1功能介绍4.2 定时器函数5测试搭建RenesasR7FA8D1BHECBD-BTB的开发调试环境(DAP-LINK:N32G45......
  • 机器人控制系列教程之关节空间运动控制器搭建(2)
    推文:机器人控制系列教程之关节空间运动控制器搭建(1)中,主要讲解了在关节空间中,基于计算力矩的控制系统设计和搭建,我们直接使用了Simulink中的JointSpaceMotionModel模块来进行控制系统的搭建和调试,下面我们将详细讲解一下另外两种控制器。PD控制器在基于PD控制器来控制......
  • 【web】1、前端基础搭建
    1创建项目1.1选择node环境nvm(其他博主)安装教程https://blog.csdn.net/qq_43940789/article/details/126042822对应使用命令nvmlistavailable     //显示可以安装的所有node.js的版本nvminstall<version>   //安装node.js的命名version是版本号......
  • ubuntu gitlab+frp 映射 版本管理平台搭建
    环境准备站点服务器:ubuntuserver22LST,RAM4G+(不然很可能502)个人PC:Vscode,git,xshell远程工具站点服务器云服务器,实体机子均可。再次动用家里的NAS-unraid开了一台ubuntu虚拟机,虚拟机用任意linux发行最新版本均可。搭建开始上一篇文章分享了hexo博客站点的搭......
  • Depth Anything环境搭建&推理测试
    ​引子基于单目摄像头的深度估计,一直是CV领域的一个难点,之前也对此关注也不够多。偶然浏览技术博客,看到DepthAnything:UnleashingthePowerofLarge-ScaleUnlabeledData这个最新CVPR2024的工作。看到名字,大概也能猜出来这篇是致敬SegmentAnything(之前也分享过一篇这个主题......
  • 04_搭建一个VUE3前端架子+gitee配置
    1.创建一个文件夹HCJV_012.vscode打开该文件夹,打开终端。3.使用vite安装,选择vue,选择JavaScript,项目名称demo01cnpmcreatevite@latest4.跳转demo01目录下cddemo015.安装cnpmcnpminstall尝试执行下:npmrundev6.安装VueRoutercnpminstallvue-router@47.......
  • 基于 Cloudflare Workers 和 cloudflare-docker-proxy 搭建镜像加速服务
    本文主要介绍了如何基于CloudflareWorkers和cloudflare-docker-proxy搭建dockerhub、gcr、quay等镜像加速服务。最近,受限于各种情况,部分主流镜像站都关了,为了能够正常使用,建议自己搭建一个加速器。写文之前,也已经部署好了一个,可以直接使用,具体使用方法跳转https://docke......
  • 搭建yolov8模型训练的环境_制作docker镜像_模型训练
    搭建一个能进行yolov8模型训练的环境,包括CUDA11.x、cuDNN8.x、Ubuntu18.04、Python3.8、Cython、NumPy、PyTorch、YOLOv8、Ultralytics等依赖(其实ultralytics 包会包含YOLOv8及其相关工具)。在Docker容器中,不需要创建虚拟环境,每个容器本身就像是一个隔离的环境,所以可以直......
  • Linux环境ftp搭建及问题总结
     环境:centos7.0一、安装软件vsftpd-服务器端rpm-qa|grepvsftpd      yum -y  install vsftpdftp客户端登录ftp服务器或者lftpyum-y installftp二、启动服务systemctl restart vsftpd默认共享目录为 /var/ftp/pub三、配置ftp默认配置......
  • 玩转zencart自助搭建卖货商城,zencart外贸建站完全实操手册-36节课
    课程目录:1-你也可用zencart自助建站1.mp42-Zencart它能做什么1.mp43-Zencart使用所需环境和条件1.mp44-zencart环境工具xampp安装1.mp45-zencart安装演示1.mp46-模板切换不带mysql数据库1.mp47-手动配置带sql数据库模板1.mp48-网站标题关键词描述设置1.mp49-网站logo......