mysql中的基本注入函数

1. 常见数据库注入函数:

      MYSQL: and length((user))>10
      ACCESS: and (select count() from MSysAccessObject)>0
      MSSQL: and (select count()from sysobjects)>0
      ORDER BY句子:
	      select id,username,password from users where id = 1 order by 1,2,3,4依次测试,从而判断有几列存在,得知列数,拿union来联合查询
      UNION查询:
	      联合查询,大部分数据库都支持联合查询(UNION)
	      MYSQL,SQL sever,Oracle
	      UNION合并两个查询结果集的基本规则
	      所有查询中的列数基本相同
	      数据类型必须兼容

sql_sever常用函数:

           as : 别名 
	顺便说几个常见的:
	rand: 遵循四舍五入把原值转化为指定小数位数
	floor: 向下舍入为指定小数位数
	ceiling: 向上舍入为指定小数位数
	rand: 返回一个介于 0 到 1(不包括 0 和 1)之间的伪随机 float 值
	group by: GROUP BY必须得配合聚合函数来用,根据字段来分类使用
	select count(*) from [table] group by concat('~',([真正的查询语句]),'~',floor(rand(0)*2))
	或
	select count(*),concat_ws(char(32,58,32),([查询语句]),floor(rand(0)*2)) as a from [table] group by a
	原理:简单来说就是count等聚合函数之后,如果使用分组语句,就会把查询的一部分以错误的形式显示出来

2. 字符串连接函数

        concat函数,返回结果为链接参数的字符串。如果任何一个参数为null,则返回值为null。
	注意:
		如果结果为连接参数产生的字符串。如果有任何一个参数为null,则返回为null
		如果自变量中含有任意一个二进制字符串,则结果为一个二进制字符串
	concat()将其连接成一个字符串,因此不会复合XPATH_STRING的个数,从而出现格式错误
	concat              concat_ws                  group_concat
	select concat(id,'|',username,'|',password)from users;以分隔符拼接出来结果
	select concat_ws('|',id,username,password)from users;
	select group_concat('
',username)from users;

3. 字符串截取函数:

	locate:返回第一个字符串首次在第二个字符串出现的位置        # 正确为1,错误为0
	select substr((select username from users limit0,1),1,2);   # 从user取出dump字段,截取2位,就是du
	length(database())                                         #判断数据库的长度
	left(database(),1) = 's'                                    #前一位是否为
	select user() regexp 'r'                                   #正则表达式匹配
	select user like 'ro%'                                                                                               #匹配符
	ascii()                                                    #返回指定数字对应的ascii码字符函数
	substr()                                                  #截取从pos位置开始到最后的所有str字符串
	select ascii (substr(select database(),1,1));                                                     #截取数据库库名第一个字母是否为security,ascii('s')=115

4. 常用函数

	聚合函数:SQL注入最多的函数
	user()查看当前Mysql登录用户名                           database():查看当前使用Mysql数据库名
	version():查看当前Mysq版本
	扩展limit关键字 limit m,n 从m行开始,到m+n行

5. 常见注入叫法:

	post注入:注入字段在post数据中
	cookie注入:注入字段在cookie数据中
	延时注入:使用数据库延时特性注入         
	搜索注入:注入处为搜索的地点
            base64注入:注入字符串需要经过base64的加密
原文地址:https://www.cnblogs.com/SnowSec/p/14229667.html