Я выполняю упражнение net0 на https://exploit-exercises.com/protostar/. Содержание упражнения состоит в том, чтобы отправить запрошенное число как 32-битное целое число с прямым порядком байтов на сервер. Я придумал следующие командные строки.
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
для отладки.
echo "Please send '220419784' as a little endian 32bit int" | cut -d ' ' -f 3 | xargs -I{} python -c "import struct; print struct.pack('I',int({}))"
выводят правильный ответ. - person dcnh35   schedule 16.04.2018