我拥有一个在 Windows XP 上的虚拟服务器“Wamp”上工作的 PHP 系统。我正在尝试使用 SQL 注入技术检测系统中的漏洞。
我已经尝试过诸如“' OR 1=1”之类的基本注入方法,并且发现了几个问题。但是,我被困在以下问题上:
我的系统中有以下代码行:
$sql2="SELECT * FROM $table1 WHERE question_id='$id'";
在这行代码之后,我执行查询并显示如下结果:
$result2=mysql_query($sql2);
while($rows=mysql_fetch_array($result2)){
?>
<table width="400" border="0" align="center" cellpadding="0" cellspacing="1" bgcolor="#CCCCCC">
<tr>
<td><table width="100%" border="0" cellpadding="3" cellspacing="1" bgcolor="#FFFFFF">
<tr>
<td bgcolor="#F8F7F1"><strong>ID</strong></td>
<td bgcolor="#F8F7F1">:</td>
<td bgcolor="#F8F7F1"><?php echo $rows['a_id']; ?></td>
</tr>
<tr>
.......
.......
请注意,变量“$id”的值是从上一页作为_GET[] 参数发送的。
我的问题是,我正在尝试注入参数 id=2?(2 是一个例子)是从前一页发送的。这是一个例子:
http://localhost/PHPforum/view_topic.php?id=2
我正在寻找一种注入变量“$id”的值的方法,以使其显示不同表(table2)而不是table1的数据。我可以显示两个表,但我需要通过该注入显示 table2 数据。
我怎么可能做到这一点?
同样,我不是要攻击任何系统,这是我拥有的系统,我正在尝试检测它的漏洞。