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