使用pwn_deploy_chroot部署国赛pwn比赛题目
使用pwn_deploy_chroot部署国赛pwn比赛题目
一、前言
最近打国赛,需要build,组内大佬们决定build pwn题,于是啥也不会的我就去看docker了。但是自己从头看docker、dockerfile有点困难,最后找到一个工具pwn_deploy_chroot,很方便的完成了docker搭建。
二、Docker
Docker是一种容器,可以理解为轻量级虚拟机,由于占用的资源少,可以同时开启很多个docker,所以很适合来做ctf题目的容器。
我参考的是这篇博客这可能是最为详细的Docker入门吐血总结,关于docker的概念和基本用法大佬讲的很详细了。
由于我在ubuntu上安装,参考官方文档Get Docker CE for Ubuntu,一步一步照着做就行。
三、部署镜像
首先要下一个镜像,然后使用sudo cat ubuntu-16.04-x86_64.tar.gz |docker import - ubuntu:16.04导入。不过好像如果dockerfile里面有FROM ubuntu:16.04这种语句的话,docker会自己从官方镜像源帮你下,之后可以用docker images查看当前已有的镜像。

四、pwn_deploy_chroot
完全自己搭建环境太难了。。幸好找到了大神的工具,没错就是pwn_deploy_chroot,参考博客如何安全快速地部署多道 ctf pwn 比赛题目。
因为我们已经安装好了Docker,所以接下来安装docker compose 和 git
apt install docker-compose git
把仓库克隆到本地
git clone https://github.com/giantbranch/pwn_deploy_chroot.git
这是我最终的目录结构,其中docker-compose.yml、Dockerfile、flags.txt、pwn.xinetd都是运行initialize.py后自动生成的,check和exp都是官方给的。

要使用这个工具,我们只需要 3 步:
1、将所有 pwn 题目放入 bin 目录(注意名字不带特殊字符,因为会将文件名作为 linux 用户名)
2、python initialize.py
3、docker-compose up --build -d
它会自动部署pwn题,端口默认从10000依次增加。
因为国赛要求端口是8888,所以我们要修改一下config.py,把这里的10000改成8888,然后把官方测试用的pwn放到bin里

运行initialize.py

会出现生成的flag、端口和文件名。
接下来启动环境
docker-compose up --build -d
显示done,用netstat -antp | grep docker查看,确认完成

可以进入image去玩玩,先sudo docker ps查看当前运行着的容器,然后sudo docker exec -ti fa53dbfdb6b7 bash进入

五、check && exp
输入ifconfig查看docker的ip,尝试用nc连

最后用官方给的check和exp来验证是否正确

成功跑出flag!接下来只要把我们自己出的pwn题放进bin,重复以上步骤就可以了。
六、参考链接
这可能是最为详细的Docker入门吐血总结
如何安全快速地部署多道 ctf pwn 比赛题目
Docker 创建镜像、修改、上传镜像
ctf pwn出题和搭建环境
使用pwn_deploy_chroot部署国赛pwn比赛题目的更多相关文章
- 【备考06组01号】第四届蓝桥杯JAVA组A组国赛题解
1.填算式 (1)题目描述 请看下面的算式: (ABCD - EFGH) * XY = 900 每个字母代表一个0~9的数字,不同字母代表不同数字,首位不能为0. 比如 ...
- 湘潭邀请赛+蓝桥国赛总结暨ACM退役总结
湘潭邀请赛已经过去三个星期,蓝桥也在上个星期结束,今天也是时候写一下总结了,这应该也是我的退役总结了~ --------------------------------湘潭邀请赛----------- ...
- 第九届蓝桥杯国赛+第二天的第11届acm省赛的总结
第九届蓝桥杯国赛+第二天的第11届acm省赛的总结 25号坐的去北京的火车,10个小时的火车,然后挤了快两个小时的地铁,最终达到了中国矿业大学旁边的订的房间.12个小时很难受,晕车症状有点严重,吃了快 ...
- 2018年第九届蓝桥杯国赛总结(JavaB组)
懒更,之前的删了补一个国赛总结 记yzm10的第一次国赛(赛点:首都经贸大学) 第一次就拿到了国一,运气不要太好~(同组lz学长豪取国特orz) 从省赛一路水过来,总算有了点成绩.其实最后一题有些遗憾 ...
- 国赛baby_pwn
国赛baby_pwn-ret2_dl_runtime_resolve之ELF32_rel,Elf32_sym,伪造 0x01 ELF文件的动态链接之延迟绑定 在动态链接下,程序模块之间包含了大量的函数 ...
- 2019第十届蓝桥杯省赛及国赛个人总结(java-B组)
省赛: 今年省赛的题目比18年简单的多,基本都是暴力枚举.BFS之类.还记得去年在山师考蓝桥杯,我这种辣鸡连题目都没看懂.本以为蓝桥会变得越来越难,没想到今年就被打脸了.今年省赛后面三个编程大题一个没 ...
- Python小白的数学建模课-A1.国赛赛题类型分析
分析赛题类型,才能有的放矢. 评论区留下邮箱地址,送你国奖论文分析 『Python小白的数学建模课 @ Youcans』 带你从数模小白成为国赛达人. 1. 数模竞赛国赛 A题类型分析 年份 题目 要 ...
- 2018年数学建模国赛B题 智能RGV的动态调度策略
第一种情况大致思路: 每秒判断各个CNC的状态,若工作完成或者是出于空闲状态下则向RGV发出一个请求.同时,RGV每秒判断自己的状态(上下料.移动.闲置.清洗等),如果是处于闲置状态,则启用调度算法, ...
- 一道仅有7人通过的超5星微软比赛题目-------解题思路&优秀代码分享,邀你来“找茬儿”
6月23日英雄会平台发布了一道难度为超5星的微软比赛题目,截止活动结束共有300多名编程爱好者参与线上答题,而最终通过者仅有7人,通过率仅为2%.为什么成绩如此出人意料?是因为题目的英文描述难以理解? ...
随机推荐
- IDEA中Tomcat热部署不生效问题解决办法
IDEA中Tomcat热部署不生效问题解决办法 1.设置完热部署后 2.一定要在Debug模式下运行不要点RUN!!!!!!!!!!!!!!!!!
- 【转载】C#中Convert.ToDouble方法将字符串转换为double类型
在C#编程过程中,可以使用Convert.ToDouble方法将字符串或者其他可转换为数字的对象变量转换为double类型,Convert.ToDouble方法有多个重载方法,最常使用的一个方法将字符 ...
- kali安装结束重启黑屏?
很多人碰到过kali在安装结束后自动重启,屏幕黑屏就显示一个光标. 解决办法: 安装最后一步,不要选择默认项 Enter device manually 改选第二项.....具体什么忘记了. 即可解决 ...
- 英语wacche腕表
手表 (戴在手腕上的计时仪器) 手表,或称为腕表,是指戴在手腕上,用以计时/显示时间的仪器,手表在英语里watch源自中世纪wacche这一词汇. 手表通常是利用皮革.橡胶.尼龙布.不锈钢等材料,制成 ...
- Java 递归方法
递归:在一个方法体内,调用自身,一般要有出口. 实例:已知一个数列,f(0)=1,f(1)=4,f(n+2)=2*f(n+1)+f(n),其中n为大于等于0的整数,求f(10)的值. package ...
- springmvc跨域问题的解决
如果只想对某个方法开启跨域设置: controller上添加注解: @CrossOrigin(maxAge = 3600) 在特定的方法上添加注解: @CrossOrigin("*" ...
- JS正则表达式提取数字
/** * [参数str] * @type {var String} * return 30 */ var str = "ren民BI30kuai" console.log(str ...
- 关于MySQL数据库编码修复相关问题
本篇主要是本人在实际开发过程中遇到的MySQL字符编码等bug修复相关问题. 在使用下列语句在执行数据库表通过flask-sqlacodegen 进行ORM映射成模型类的时候发生的bug: flask ...
- 【异常(待解决)】org.apache.http.NoHttpResponseException: api.weixin.qq.com:443 failed to respond
一.记录下异常堆栈信息 -- ::-exec-] ERROR weixin.popular.client.LocalHttpClient - execute error org.apache.http ...
- python的推导式 —— 列表推导式、集合和字典推导式
python的推导式是用于快速处理数据的方法. 主要有:列表推导式.集合推导式和字典推导式 import time import numpy as np 列表推导式: 1. 速度快 t1 = time ...