CTF简单部署一道密码学题目

CTF中如何部署一道交互的密码学题目呢?在这里简单分享一下部署的经验。



1.方案说明

  • 一般一道需要交互的密码学题目都是用python出的,一般是类似pwn题一样部署到服务器的一个端口上。
  • 这样的部署方案大概可以分为两步:
    • 第一步:将python文件生成linux可执行文件。
    • 第二步:将可执行文件绑定到指定端口上对外暴露。
  • 其实生成可执行文件后就和pwn的部署思路一样了。

2.步骤一:生成可执行文件

  • 一般生成Python可执行文件常用pyinstaller。
  • 先安装pyinstaller。
pip install pyinstaller
  • 再生成可执行文件。
pyinstaller -F xxxx.py
  • 在dist目录中就可以找到可执行文件了。

3.步骤二:绑定端口对外暴露

  • 其实这一步和部署一个pwn没有啥区别。下面介绍两种方法:

pwn_deploy_chroot

  • 常用部署pwn题的方式是pwn_deploy_chroot,项目基于docker,xinetd和chroot,非常安全,操作也非常简单。
  • 下载pwn_deploy_chroot。
git clone https://github.com/giantbranch/pwn_deploy_chroot.git
  • 将可执行文件放入bin目录。
  • 运行初始化脚本:
python initialize.py
  • 启动容器:
docker-compose up --build -d
  • 默认会从10000端口开始部署,启动成功后就可以看到flag和端口信息了,这些都是可以修改的。

socat

  • pwn题一般不用这种方式部署,因为没有权限的隔离,非常不安全,但是密码学题目一般不会打到机子上来,用这种方法更快。
  • 先下载socat:
yum install socat
  • 绑定端口:
socat tcp-listen:端口,fork exec:可执行文件路径,reuseaddr
  • 最后,远程尝试是否部署成功,可以用pwntools连一下。

ATFWUS 2021-08-18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ATFWUS

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值