CTF赛题下载、复现、解题方法

CTF练习–赛题下载、复现、解题方法

看过这篇文章,你将学会github中分享的赛题本地复现

我们以靶场其中的(web_gift)进行复现

一、操作系统准备

你需要一个linux操作系统并完成docker搭建。

系统:ubuntu

安装网上教程一大堆,这里不再阐述

二、ubuntu搭建docker环境

网上搭建docker一堆坑,对新手很不友好,建议看官网的最新命令

更新ubuntu

apt-get update

apt-get upgrade

安装docker

apt-get install docker.io

安装pip(可选)

sudo apt install python3-pip

安装docker-compose

sudo apt install docker-compose

或者

pip install docker-compose

验证

三、github下载靶场

解压把web文件夹复制到ubuntu中

四、赛题复现

靶场中文件是dockerfile

使用以下两个重要命令:

sudo docker build -t 容器名称 .

注意:有一个点,代表当前目录,

(普通用户使用命令sudo -s 切换为root)

sudo docker run --restart always --name 容器名 -p 8801:80 -d 构建的容器名

打开靶场

打开什么都没有,查看源码发现备份文件,下载打开代码审计发现需要gift与flag相等

构造http://127.0.0.1:8801/flag.php?gift=&flag

获取flag值

靶场中文件是**.yml文件

进入到该文件目录下修改**.yml文件中的对应端口再运行命令。

docker-compose up -d #启动容器

docker-compose stop #停止容器

总结

Dockerfile构建

#到dockerfile文件目录

sudo docker build -t shiyanba .

#查看docker镜像

sudo docker images

#查看完整的container id

docker ps --no-trunc

#运行容器

sudo docker run --restart always --name mynginx -p 4396:80 -d mynginx

Docker 给 故障停掉的 container 增加 restart 参数

方法1

停止容器进程

sudo docker stop CONTAINER ID

#移除容器

sudo docker rm 完整的内部CONTAINER ID

方法2

docker container update --restart=always 容器名

查看容器内部目录

sudo docker container exec -it CONTAINER ID(7a0613a6cb1d) /bin/bash

2025-12-01 16:18:34
湿生扁蕾
华为G610手机参数