首先加个单引号来测试一下。
嘿嘿,我还是为了方便把查询语句打印出来了,我们对照上面的查询语句和上一关的截图,可以发现一些规律,但报错信息中只有一个双引号和一个单引号时,这种情况一般是页面没有写引号的。而如果报错信息中出现了一堆双引号加上一个单引号,那么这个就要加上单引号。下面我用我自己写的页面来测试一下。源码如下:
1.php
<?php
include("sql-inc.php");
$id = $_GET[ 'id' ];
$sql = "select * from users where id = '$id'";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
echo mysql_error();
echo $row[ '0' ];
echo "</br>";
echo $row[ '1' ];
echo "</br>";
echo $row[ '2' ];
?>
2.php
<?php
include("sql-inc.php");
$id = $_GET[ 'id' ];
$sql = "select * from users where id = $id";
$query = mysql_query($sql);
$row = mysql_fetch_array($query);
echo mysql_error();
echo $row[ '0' ];
echo "</br>";
echo $row[ '1' ];
echo "</br>";
echo $row[ '2' ];
?>
效果图:
和我说的差不多,本人不是很会表达。下面开始实战,我们现在知道了他没有引号,所以我们可以直接进行注入。效果图:
第二关也就这样。