这是一个非常简单的例子:
$val = "";
if(array_key_exists("param", $_REQUEST)) {
$val = $_REQUEST["param"];
}
print "echo \"$val\"";
passthru("echo \"$val\"");
如果我通过了,我期待passthru()
打印出来。但是,看起来 PHP 并没有解释转义序列并将 "\x41" 传递给. 我知道速记只适用于 PHP 中的双引号字符串,但在上面的示例中应该满足该条件。读取变量是否会修改任何内容?A
test.php?param=\x41
passthru
\xAA
$_REQUEST