双查询注入前需要了解什么是子查询

子查询可以理解在一个select语句中再插入一个select 里面的select语句就是子查询

例子:select concat((select database()));

执行语句时,先从子查询进行, 先执行select database()再把结果传入到concat函数

双注入查询需要理解几个函数

  1. count():汇总数据函数
  2. rand():随机输出一个小于1的正数
  3. floor():把输出的结果取整
  4. group by语句:把结果分组输出
  5. concat():连接两条语句

在本地进行测试

连接数据库后使用security数据库

select concat((select database()));

显示security 当前数据库的名字了

Concat()用法

Select concat()

Rand()用法

Select rand()

这个函数就是返回大于0小于1的随机数

Floor()用法

Select floor(1.534236);

这个函数就是返回小于等于输入数的整数

  • select floor(rand()*2);

    从里往外看,rand随机一个0-1的数再乘以2传给floor取整 就是说这个语句输出的结果不是0就是1

  • select concat((select database()),floor(rand()2));

    还是从里往外看,select database()显示数据库名,floor(rand()
    2)返回的结果只有0或者1,传给concat进行拼接然后查询显示

在后面加上from+表名 可以查新到表名中的所有符合的用户

  • select concat((select database()),floor(rand()*2)) from users;

由于表中用户数据很多,容易产生 很多随机值 所以现在要用group by语句进行分组

  • select concat((select database()),floor(rand()*2))as a from information_schema.tables group by a;

这句语句的意思就是从information_schema.tables 中查询到的结果拼接后取一个别名a,然后使用它进行分组,这样相同的security0为一组,security1为一组 就只有两个结果了

其中表可以换成information_schema.columns database()处也可以替换成任意想查询的函数。Eg: version() user() datadir()

最后呢加入聚合函数count(*)

  • select count(), concat((select database()), floor(rand()2))as a from information_schema.tables group by a;

sql注入之双查询注入的更多相关文章

  1. sqli-labs less5-6(双查询注入)

    less-5 双查询注入 利用count(), group by, floor(), rand()报错 双查询注入的原理参考博客 打开less-5 用union注入的流程进行发现页面不会有回显,所以u ...

  2. SQL注入之堆叠注入(堆查询注入)

    Stached injection -- 堆叠注入 0x00 堆叠注入的定义 ​ Stacked injection 汉语翻译过来后,称 为堆查询注入,也有称之为堆叠注入.堆叠注入为攻击者提供了很多的 ...

  3. base64变形注入与联合查询注入的爱情故事

    先来写一下GET的知识点: 1.知道了convart函数(CONVERT函数是把日期转换为新数据类型的通用函数) 2.Illegal mix of collations for operation ' ...

  4. sql注入--双查询报错注入

    sql注入--双查询报错注入 背景:在sqli-labs第五关时,即使sql语句构造成功页面也没有回显出我们需要的信息,看到了有使用双查询操作造成报错的方式获得数据库信息,于是研究了一下双查询的报错原 ...

  5. sql注入--双查询报错注入原理探索

    目录 双查询报错注入原理探索 part 1 场景复现 part 2 形成原因 part 3 报错原理 part 4 探索小结 双查询报错注入原理探索 上一篇讲了双查询报错查询注入,后又参考了一些博客, ...

  6. sqli注入--利用information_schema配合双查询报错注入

    目录 sqli-labs 5.6双查询报错注入通关 0x01 获取目标库名 0x02 获取库中表的数量 0x03 获取库中表名 0x04 获取目标表中的列数 0x05 获取目标表的列名 0x06 从列 ...

  7. 记一次SQL联合查询注入工具的编写

    这是一个ASP网站的简单SQL注入检测和利用的工具,主要的功能是简单的检测出SQL注入漏洞,可以使用该id存在的SQL注入来获取数据库中的网站管理员的表名和字段名,猜解数据库中该表的字段数,最后通过联 ...

  8. 利用DNS实现SQL注入带外查询(OOB)

    根据用于数据检索的传输信道,SQLi可分为三个独立的类别:inference(经典SQL注入),inband(盲注.推理注入.带内注入)和out-of-band 一.什么是OOB out-of-ban ...

  9. SQL注入与参数化查询

    SQL注入的本质 SQL注入的实质就是通过SQL拼接字符串追加命令,导致SQL的语义发生了变化.为什么发生了改变呢? 因为没有重用以前的执行计划,而是对注入后的SQL语句重新编译,然后重新执行了语法解 ...

随机推荐

  1. 使用Ganglia监控系统监控集群(debian)

    ganglia是一个集群监控软件,底层使用RRDTool获得数据. Ganglia分为ganglia-monitor和gmetad两部分,前者运行在集群每个节点上(被监控机器)收集RRDTool产生的 ...

  2. ubuntu 18.04安装RTL8821CE无线网卡驱动

    疫情期间闲下来无聊,把办公室的旧机器装了ubuntu,但是无法连接无线网. 打开终端 #查看无线网卡信息. -i 是不区分大小写 tjj@ubuntu:~/Documents$ lspci | gre ...

  3. 基于物联网的O2O养猪平台

    引言:随着生活水平的提高,人们会越来越重视食品安全问题.在城市里的人想养头猪,并想看着它快快乐乐长大.但是无奈于自己没时间和精力.而农户想养猪,可能又缺少启动资金,且不能承担大的风险.这时候我的美团式 ...

  4. 给PDF批量添加文本链接

    为了进一步补充说明文件中的一些重要内容,PDF文件的创建者会为一些文本创建链接,方便阅读者访问相关的网站,获取更多的信息. 我们可以通过使用pdfFactory文本链接功能来实现以上需求,另外,我们还 ...

  5. jQuery 第五章 实例方法 详解动画之animate()方法

    .animate()   .stop()   .finish() ------------------------------------------------------------------- ...

  6. 模拟赛38 B. T形覆盖 大模拟

    题目描述 如果玩过俄罗斯方块,应该见过如下图形: 我们称它为一个 \(T\) 形四格拼板 .其中心被标记为\(×\). 小苗画了一个 \(m\) 行 \(n\) 列的长方形网格.行从 \(0\) 至 ...

  7. Java基础教程——Date类和Calendar类

    Date类和Calendar类都是关于日期的类,都在java.util包中,使用时需要import. Date java.util.Date类的对象用来表示时间和日期,用得最多的是获取系统当前日期和时 ...

  8. 中级实训Android学习记录——Toast、AlertDialog、ProgressBar

    学习记录 2020/11/22 Toast Toast Toast是一个消息提示组件 我们可以设置其显示的位置 自定义其显示的内容 对Toast的简单封装可以达到不同的目的 Toast的默认用法 To ...

  9. cheat.sh在手,天下我有

    前言 作为程序员需要了解的东西有很多,日常编码和写脚本脱离不开各式语言与 Linux 命令.为了记住一些杂乱的或不被经常使用的知识点,我们迫切需要一个"小抄"/备忘录,小抄内容多了 ...

  10. 欢天喜地七仙女——UML设计

    这个作业的要求在哪里 作业要求 团队名称 欢天喜地七仙女 团队成员 王玮晗.林鑫宇.黄龙骏.陈少龙.何一山.崔亚明.陆桂莺 这个作业的目标 团队一起绘制UML图 作业正文 如下 其它参考文献 见文末 ...