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

猜你喜欢

转载自blog.csdn.net/renxq097/article/details/124025843