mysql注入繞過空格過濾的方法

2021-12-29 20:21:50 字數 1163 閱讀 6891

sql注入時,空格的使用是非常普遍的。比如,我們使用union來取得目標資料:

and 0 union select null,null,null

上面的語句,在and兩側、union兩側、select的兩側,都需要空格。

1. 注釋繞過空格

這是最基本的方法,在一些自動化sql注射工具中,使用也十分普遍。在mysql中,用

/*注釋*/

來標記注釋的內容。比如sql查詢:

select user() from dual

我們用注釋替換空格,就可以變成:

select/**/user()/**/from/**/dual

如下圖,sql命令能夠正確執行:

2. 括號繞過空格

空格被過濾,但括號沒有被過濾,可通過括號繞過。

我的經驗是,在mysql中,括號是用來包圍子查詢的。因此,任何可以計算出結果的語句,都可以用括號包圍起來。而括號的兩端,可以沒有多餘的空格。

括號繞過空格的方法,在time based盲注中,是屢試不爽的。

舉例說明,我們有這樣的一條sql查詢:

select user() from dual where 1=1 and 2=2

如何把空格減到最少?

觀察到user()可以算值,那麼user()兩邊要加括號,變成:

select(user())from dual where 1=1 and 2=2;

繼續,1=1和2=2可以算值,也加括號,去空格,變成:

select(user())from dual where(1=1)and(2=2)

dual兩邊的空格,通常是由程式設計師自己新增,我們一般無法控制。所以上面就是空格最少的結果。

這也是非常實用的乙個技巧。

用我常用的一條time based盲注語句做個總結:

這條語句是猜解user()第二個字元的ascii碼是不是109,若是109,則頁面載入將延遲。它:

1) 既沒有用到逗號、大小於符號

2) 也沒有使用空格

卻可以完成資料的猜解工作!

mysql注入繞過空格過濾的方法

sql注入時,空格的使用是非常普遍的。比如,我們使用union來取得目標資料 and 0 union select null,null,null 上面的語句,在and兩側 union兩側 select的兩側,都需要空格。1.注釋繞過空格 這是最基本的方法,在一些自動化sql注射工具中,使用也十分普遍...

mysql注入轉義繞過 SQL注入防禦繞過

一 寬位元組注入 1 什麼是寬位元組 gb2312 gbk gb18030 big5等這些都是常說的寬位元組,實際為兩位元組 2 寬位元組注入原理 防禦 將 轉換為 繞過 將 消滅 mysql在使用gbk編碼的時候,會認為兩個字元為乙個漢字 編碼為 5c 編碼為 27 df 5c mysql會認為是...

mysql手工注入繞過 sql注入繞過WAF

這幾天的ctf題中有好幾道題都是sql注入的,但都存在waf需要繞過,於是整理了一些常見的繞過waf注入的方法。在現實sql注入中我們也常常碰到waf,那麼掌握常見的繞過很有必要。0x01 手工注入繞過 1 大小寫混合例如 union select 1,2,3,4 只適用於針對大小寫關鍵字的匹配 2...