SQL注入group_concat()函数是否需要使用?(转载)

我们在SQL注入的过程中,到底需不需要使用group_concat()函数?

要弄清楚这个问题我们就需要了解group_concat()函数的作用
参考链接group_concat()函数讲解
上面说的非常清楚
总结来说就是将数据放在一起。
下面放一张自己的实验照片。方便理解

实验照片1

好了现在我们知道了这个函数的作用。我们就来看看SQL注入的语句。
假如有下面的注入语句。查询password数据

1
2
3
4
1^(ascii(substr((select(password)from(admin)),1,1))>1)^1

拼接:
select * from admin where id=1^(ascii(substr((select(password)from(admin)),1,1))>1)^1;

img

直接报错?!哦哦原来是returns more than 1 row。
那我们想一想为什么会出现这样?
哦~~~
原来是之前的password数据有多列,SQL不知道查询那一个
这样就有俩种方法
1.添加limit 1

img

2.使用group_concat()函数,让password数据放在一列里面

img

所以如果我们不需要limit和group_concat进行查询多列数据,数据库会直接报错。
只有当数据是一列的时候才不需要使用他们。

Link: (转载)https://blog.csdn.net/qq_46091464/article/details/107645568