Sto cercando di saperne di più sullo sfruttamento di eval () di PHP e mi sono imbattuto in questo scenario:
<?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);
?>
Ho provato a iniettare diverse combinazioni di virgolette e barre rovesciate nel parametro $ _GET ma non ho avuto fortuna a rompere la stringa $ cmd.
Al di là del bug XSS, questo frammento di codice è vulnerabile? Questo può essere sfruttato per l'iniezione di codice PHP?