ctf pwn出题和搭建环境

学校要举办校赛,需要出pwn题目和搭建环境。遇到了几个坑在这里填一下。
然后感谢一纸笔墨大佬的帮忙。


出题
出题遇到了一个问题在程序运行的时候输入和输出的顺序是反的。

$ ./pwn1 
If you can get the shell, you will be out
good luck!! 这个是正常运行

用这个命令部署
$ socat tcp-l:8887,fork exec:./pwn1
但是监听端口端口的时候没有输出就结束了
~$ nc 127.0.0.1 8887
adsas

编译命令是
gcc -m32 -fno-stack-protector -z execstack -mpreferred-stack-boundary=4 -o pwn1 leak.c

用别人出的题目都没问题,自己编译的就会出现这个问题。
原因是写程序的时候需要先清空输入输出流。不然用socat端口挂载的时候程序中的read,write函数就会出现一些问题。
解决方案:
setbuf函数了解一下https://blog.csdn.net/fjt19900921/article/details/8122313在输入前面对stdin初始化,输出前面对stdout初始化。


部署
如果是自己尝试的话socat tcp-l:8887,fork exec:./pwn1就完全够用了。
如果是出题的话需要这个https://mp.weixin.qq.com/s?__biz=MjM5MTYxNjQxOA==&mid=2652848854&idx=1&sn=ff537cc73e76e1ab058bd36cb76749a0&chksm=bd593e1b8a2eb70d41627a1d04c1abec2c071f28c2649ddd9e313c4eda854ca4a26db20a1985&mpshare=1&scene=1&srcid=1011dGXhepYahcla33btEWte#rd
pwn_deploy_chroot了解一下,获取到shell之后就会输出flag,避免搅屎棍。
但是我在使用的时候出现了问题,开启之后连接没反应。
ctf pwn出题和搭建环境_第1张图片

解决方案
ctf pwn出题和搭建环境_第2张图片
这里的port项跟之前进程的port不符(我这里是改过的)。
但是没有vim编辑器,sed了解一下
root@f7370adf0b09:/etc/xinetd.d# sed -i 9a\\" port = 10000" pwn
root@f7370adf0b09:/etc/xinetd.d# sed -i 9d pwn
然后exit ,python initialize.py
重新启动。

你可能感兴趣的:(docker,pwn出题)