我正在尝试了解有关 PHP eval() 开发的更多信息,并且遇到了这种情况:
<?php
$test = array();
$test[0] = "command0 ";
$test[1] = $_GET["cmd1"];
$test[2] = "command2 ";
$test[3] = "command3 ";
$params = "";
for ($i = 0; $i < count($test); $i++) {
$params .= "\$test[$i]";
}
echo $params;
echo "<br>";
$cmd = "echo \"" . $params . "\";";
echo $cmd;
echo "<br>";
eval($cmd);
?>
我尝试将双引号和反斜杠的几种组合注入 $_GET 参数,但没有成功突破 $cmd 字符串。
除了 XSS 漏洞之外,这个代码片段是否容易受到攻击?这可以被滥用于 PHP 代码注入吗?