栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

部署ctf pwn题目的时候遇到的坑+经验总结

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

部署ctf pwn题目的时候遇到的坑+经验总结

前言

还是第一次部署pwn题目,这次一共使用了两个项目一个是ctfd,另一个是ctf-xinetd。重点大概记录一下两个东西咋用。

ctfd

编辑首页部分 目录栏里面的page 这是看到的首页

注意在放题目的时候要放上连接nc地址,老是忘记。

xinetd 部署题目
  • 在bin目录下放好binary和flag(或者flag.txt以及其他的,用户ls之后就能看到这个文件夹的内容)
  • 修改ctf.xinetd文件中如下图所示的部分为可执行文件名称,也就是pwn题目的binary文件

    启动docker,使用的命令就是README中的
sudo docker build -t "image_name"
sudo docker run -d -p "0.0.0.0:(port):9999" -h "name" --name="name" name

测试是否部署成功

nc 127.0.0.1 (port)

这里注意遇到很坑的地方,第一次部署pwn题可能会碰到,就是一定要设置缓冲区,也就是下面的代码,不然无法输出内容,必须先要用户输入才行。

void init()
{
    fflush(stdin);
    fflush(stdout);
    fflush(stderr);
    setvbuf(stdin,0,_IOLBF,0);
    setvbuf(stdin,0,_IOLBF,0);
    setvbuf(stderr,0,_IOLBF,0);
    return alarm(0x14);
}
有关libc版本

好像docker部署的环境下只能跑最新的libc版本,其中2.23,2.27和2.31分别对应Dockerfile中的顶端ubuntu版本16.04,18.04,20.04。因此要记住最好新出的题目要拿最新的libc,不然后面可能还要重做一遍(萌新不会用别的工具放题目555)

如果需要部署i386的文件,需要这样写
这里对应的就是系统初始化的命令部分。

删除题目

在大多数情况下(这里我几乎每一题要布置四五次…)布置会失败,需要删除image以及容器来重新布置

sudo docker ps #查看所有开放端口
sudo docker stop XXXXX #停止XXXXX开放端口
sudo docker container ls -a # 查看所有容器
sudo docker rm XXXXX # 删除当前容器
sudo docker image ls # 查看所有镜像
sudo docker rmi XXXXX # 删除当前镜像
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/323627.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号