我有一个字符串/参数要传递给C程序。这是一个字符串格式的漏洞。
'\xb2\x33\02\x08%13x%2$n'
然而,如果我通过执行以下操作从Python调用C程序,似乎会表现出不同的行为
subprocess.Popen(["env", "-i", "./practice", '\xb2\x33\02\x08%13x%2$n'])
对
./practice '\xb2\x33\02\x08%13x%2$n'
不同之处在于,通过子流程调用脚本时,字符串利用攻击的效果与预期一致,但在我通过CLI调用脚本时则不然。
原因可能是什么?谢谢