伙计们,我正在学习解决ctf问题,在php中看到了这一行。
${"result$i"} = $db->query("SELECT * FROM {$tables[$i]} " . ($order != '' ? "ORDER BY ".$db->escape_string($order)." " : ""));
这是在以$i作为增量器的for循环中,所以没有理解发生的情况是:
这句话的意思是什么:${"result$i"}
$tables[$i] is {}
($order != '' ? "ORDER BY ".$db->escape_string($order)." " : "")发布于 2020-05-05 19:20:16
`${"result$i"}:
在这里,您定义了一个动态变量,该变量以“结果”开头,并以$i =1的数字结尾,因此,对于每个$i,您都可以得到$result1`and。
$tables[$i]放入{ }中
这里还需要一个名为table的数组的内容,所以使用$i= 1,您可以得到表{1]中的tablenaME。
($order != '' ? "ORDER BY ".$db->escape_string($order)." " : "")
在这里,如果变量%order有任何内容,那么是否进行螯合,如果有,则按$order的内容添加到查询字符串顺序,否则不会向字符串添加“任何”内容。ORDER总是在末尾被删除,如果在保存的离子中有一个列名和排序顺序,则将变量添加到字符串中。
https://stackoverflow.com/questions/61621040
复制相似问题