盲注, 即在SQL 注入过程当中, SQL 语句执行选择后, 选择的数据不能回显到前端, 须要使用特殊的方法进行判断或尝试, 这个过程称为盲注。前端
基于布尔型SQL 盲汁即在SQL 注入过程当中, 应用程序仅仅返回True( 页面) 和False( 页面) 。没法根据应用程序的返回页面获得须要的数据库信息。可是能够经过构造逻辑判断( 比较大小) 来获得须要的信息。web
注入SQL 代码以后, 存在如下两种状况:数据库
产生一个疑问:注入的SQL 代码到底被后台数据库执行了没有? 即Web 应用程序是否存在SQL 注入?
面对这种状况,以前讲的基于布尔的SQL 盲注就很难发挥做用了( 由于基于布尔的SQL 前提是Web 程序返回的页面存在true 和false 两种不一样的页面)。这时, 通常采用基于web 应用响应时间上的差别来判断是否存在SQL 注入, 即基于时间型SQL 盲注。安全
count(columu_name)函数
函数返回指定列的值的数目(NULL 不计入)
语法示例:
Select count (user) from users; // 返回表中user列的记录数
select count(*) from users; // 返回表中的记录数
示例如图所示:函数
Limit(m,n) 函数
说明:m 表明从m+1 条记录行开始检索,n 表明取出n 条数据。( m 可设为0 )
语法示例:
select * from 表名 limit m,n;
select user from users limit 0,1; // 检索记录行1
示例如图所示:网站
length() 函数
length() 函数返回文本字段中值的长度。
语法示例:
select length(user) from users;
示例如图所示:设计
字符串截取函数有几个相似函数,mid(), substr() ,substring()和left() , 其中前三个函数用法基本一致
mid (string,start,length) 函数
其中,每一个参数的含义以下:orm
substring(string,start,length) 和substr(string, start, length)
函数实现的功能是同样的, 均为截取字符串。
其中,每一个参数的含义以下:blog
语法示例:ci
left (string,length) 函数
截取指定长度的字符串
其中, 每一个参数的含义以下:
Ascil() 函数
将字符转化为ascii 码。若是是字符串, 则返回的最左字符的数值。也就是第一个字符的ascii 值。若是字符串为空字符串,则返回NULL 。若是字符串为NULL, ASCII() 返回数值是从0 到255 随机。
语法示例
select ascii(substr(user,1,1)) from users limit 0,1;
示例如图所示
基于布尔型SQL盲注即在SQL 注入过程当中,应用程序仅仅返回True(页面)和FaIse(页面)。 但不会回显程序返回信息。对于布尔型盲注能够经过构造逻辑判断( 比较大小) 来获得数据库内容信息。
盲注的步骤与注入语句:( 注入须要在注入点拼接注入语句,实现逻辑判断)
1 、判断当前数据库名长度与数据库名
2 、判断数据库的表长度与表名
3 、判断数据库的字段名长度与字段名称
4 、判断字段的内容长度与内容字符串