条件:
当一个页面,存在注入,没显示位,没有数据库出错信息,只能通过页面返回正常不正常进行判断进行sql注入。
了解的函数
exists()
用于检查 子查询是否有返回数据。 结果是 ture或者false
ascii()
把字符转化成ascii码

substr()
substr(string string,num start,num length);
偏移从1开始的 并不是0;

select ascii(substr((select user()),1,1));

步骤
(1) 看是否有注入点,判断 整型还是字符串
(2)判断查找的数据库的长度
(3) 根据ascii()函数 得出库名
(4) 查找库,判断库的长度 , 根据ascii() 得出表名
(5) 判断表名的长度,根据ascii() 得出列名
1.找注入点
2.一次判断数据库的版本号
select ascii(substr((select database()),1,1))
?id=1'
and (select ascii(substr((select database()),1,1)) >115)
--+
3.判断查找的数据库的长度
4. 得到表名
最终依次猜的表名为users
5. 得到列名
同理最终得到第2列列名为username,第3列列名为password
5. 得到列值
依次得到为admin4,同理可得其他数据