• 学习笔记 MYSQL报错注入(count()、rand()、group by)


    首先看下常见的攻击载荷,如下:

    select count(*),(floor(rand(0)*2))x from table group by x;

    然后对于攻击载荷进行解释,

    floor(rand(0)*2) 查询表中内容大于等于3条会报错。一部分原因,因为floor(rand(0)*2)是有规律和固定的。

    如果不理解,可以用数据库做下实验。select floor(rand(0)*2) from table ,数据量最好10条左右。你会发现一串0110110011……有规律的数字。

    再然后select count(*) from table group by x,这句话再MYSQL中执行,会建立虚拟表,虚拟表用来统计。

    例如:表中有a字段12条,语句会逐一在虚拟表中累加计数,统计结束后返回。

    最后看下select count(*) from table group by floor(rand(0)*2),查询过程。

    由于floor(rand(0)*2)是有规律的(011011001110....),语句会多次执行,伪代码如下:

    1、select count(*) from table group by 0

    2、select count(*) from table group by 1

    3、select count(*) from table group by 1

    4、select count(*) from table group by 0

    5、select count(*) from table group by 1

    ......

    第一次为0跳过,第二次为值为1计数1,第三次值为1计数2,第四为0跳过,第五次值为1,新插入数据(因为第四次是0),由于新插入数据主键键值与之前的主键键值相同所以报错。

    具体攻击载荷,请见https://www.waitalone.cn/mysql-error-based-injection.html

  • 相关阅读:
    eclipse中文乱码问题解决方案
    修改Tomcat的JDK目录
    Tomcat 5.5 修改服务器的侦听端口
    HTML DOM教程 27HTML DOM Button 对象
    HTML DOM教程 24HTML DOM Frameset 对象
    Navicat for MySQL v8.0.27 的注册码
    HTML DOM教程 25HTML DOM IFrame 对象
    Tomcat 5.5 的下载和安装
    android manifest相关属性
    ubuntu10.04 下 eclipse 小结
  • 原文地址:https://www.cnblogs.com/MiWhite/p/6213363.html
Copyright © 2020-2023  润新知