首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Pwn出题教程

Pwn出题教程

作者头像
h1J4cker
发布2022-12-01 15:54:15
1.6K0
发布2022-12-01 15:54:15
举报

前段时间经历了自己人生中的第一出题,在出题过程中遇到了很多问题,而网上相关的教程很少,于是打算记录一下自己出题的过程以及踩过的坑。

  • 首先是安装docker

用官方的脚本直接就可以安装:

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

这个命令可以安装好一切,至于网上说用apt-get install docker docker-compose来安装docker-compose,千万别这样,这样会破坏依赖关系(我的ubuntu就这样被干烂了哈哈哈),安装好了以后运行命令sudo docker ps -a没报错就是成功了。

这里要注意,所有docker相关的命令前面一定要加sudo才能运行成功(我一开始不知道,咋运行都是报错,还以为安装的时候啥东西出错了)

不加sudo会报如下的错误:

  • ctf_xinetd的下载与使用

这是Github上的一个开源项目:ctf_xinetd

直接将这个项目clone下来:

git clone https://github.com/Eadom/ctf_xinetd.git

会发现在当前目录下生成了一个文件夹:

将编译好的ELF文件(如果有libc也一起放进去),放入此文件夹的bin目录中,并且把flag改成想要的内容,然后在ctf_xinetd的同级目录下创建docker-compose.yml文件:

其中的内容为:

version: '3'

services:
    pwn:
        build: ./
        image: pwn
        ports:
            - "60001:9999"
        pids_limit: 1024
        # cpus: 0.5
        restart: unless-stopped
        # privileged: true

这里面的image名字要与后面创建的docker image的名字对应。

然后打开ctf.xinetd文件,将图中框起来的部分的名字改为前一步中在bin目录中放入的ELF的名字:

在ctf_xinetd的目录下运行命令:

docker build -t "pwn" .

来创建一个镜像,也就是image,这里的名字要和docker-compose中写的名字一样,也就是说你docker-compose文件里的image名字写的是什么,这里build的image名就要叫啥。

这里的build命令可能会报出如下的错误:

这是由于使用的ubuntu版本高于了18.04导致的,解决方法就是打开ctf_xinetd文件夹下的dockerfile文件,并将图纸框起来的部分删除即可:

这里值得一提的是,如果需要更改docker所使用的ubuntu版本,也是在dockerfile的最上面更改即可:

然后仍然在此目录下运行命令:

docker run -d -p "127.0.0.1:8888:9999" -h "pwn" --name="pwn" pwn

这里的-p后面的内容就是把9999端口映射到8888端口,这里的端口号可以改。

–name后面的内容是指定容器的名称,而-h是指定容器的hostname,而最后的那个pwn,则是image的名字,所以这里要根据你前面创建的镜像名进行更改。

注意,这里其实是手动映射了端口,其实直接使用docker-compose文件来映射端口也是可以的。

运行之后就会发现docker已经成功运行了,到这里题目部署就完成了,在题目的exp中写上:

io=remote("ip",port) #port为映射后的端口,在这里是8888

即可发现能够成功打通并拿到测试用的flag。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-10-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器镜像服务
容器镜像服务(Tencent Container Registry,TCR)为您提供安全独享、高性能的容器镜像托管分发服务。您可同时在全球多个地域创建独享实例,以实现容器镜像的就近拉取,降低拉取时间,节约带宽成本。TCR 提供细颗粒度的权限管理及访问控制,保障您的数据安全。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档