• 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的加密
  • 相关阅读:
    百度翻译
    MailKit帮助类
    Ext.net 3.1学习
    求助 页面布局哪里错了
    jQuery 实现图片动画代码
    CSS图片水平垂直居中
    纯CSS选项卡
    百度纯CSS生成菜单
    KVM虚拟机配置
    快速部署Apache服务静态网站
  • 原文地址:https://www.cnblogs.com/SnowSec/p/14229667.html
Copyright © 2020-2023  润新知