netcat联机帮助页指示,如果没有-c和-e选项,可以使用以下命令通过nc为
shell提供服务.
$rm -f /tmp/f; mkfifo /tmp/f $cat /tmp/f | /bin/sh -i 2>&1 | nc -l 127.0.0.1 1234 > /tmp/f
现在,根据我的理解,来自fifos的读取和写入都是阻塞操作.例如,如果我跑
$mkfifo foo $cat foo
bash会阻塞,因为没有写入foo.来自nc联机帮助页的示例中的管道如何不阻塞?我假设我误解了管道的执行方式.
管道中的所有命令同时运行,而不是顺序运行.所以cat / tmp / f确实会阻塞,但是/ bin / sh和nc仍会在发生时启动.当客户端连接到端口并发送命令时,nc将写入FIFO,这将允许cat解除阻塞.
原文地址:https://www.jb51.cc/bash/383599.html
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。