我在https://exploit-exercises.com/protostar/上做运动net0。练习的内容是将请求的数字作为一个小端32位int发送到服务器。我想出了以下命令行。
mkfifo /tmp/pipe
cat /tmp/pipe | netcat 127.0.0.1 2999 |tee -a /tmp/log | cut -d ' ' -f 3 | xargs -I{} python -c "import struct; print struct.pack('I',int({}))" > /tmp/pipe
第二个命令行没有完成,我在使用cat /tmp/pipe
进行调试时发现strace
阻塞读取(未打开)。
答案 0 :(得分:1)
我找到了原因。当输出不是终端时,cut
将缓冲输出。 python print
也需要刷新。
https://unix.stackexchange.com/a/226675/194577