第五关

目的:拿到数据库的用户名和密码

输入?id=1

 这个界面只显示了个you are in....  

 

发现输入 id=2 和 id=2-1,也是这个界面 所以就是用户的数据回显不出来了,所以这道题就无法用union联合注入了,有报错信息,所以可以用报错注入

 尝试一下输入单引号,看看有没有报错

 发现闭合方式为单引号’

接着利用order by进行二分法查看一下有多少列

输入?id=2' order by 5 --+

 为3的时候界面正常,说明有3列

由于不能显示信息,所以用报错注入函数updataxml

在参数0,1之间的第二个位置就是我们可以进行注入的地方

 但是会发现并没有显示信息,是因为有一些字符被过滤掉了或者被转义机制察觉到了,所以要在updatexml函数中用concat函数

 可以发现数据库的名字为security

在构造的playload,将database()换成别的语句就可以执行别的操作了,如果换成一条语句,记得要用括号把语句包起来

接着进行爆表

 可以看到有4个表,用户名和密码应该是放在users这个表中

接着进行爆字段

 可以看到users这个表中有id,username,password 这3列

接着我们查看一下username和password这2列

 但是发现只有2个用户名

个人理解:是因为这个页面只能显示这么多,如果我们想要把数据库的用户全部拿出来,那就得一条条弄(加上limit)

如:

加上limit 0,1 拿到 用户名 Dumb  密码为 Dumb  (用户名和密码用~隔开)

 加上limit 1,1 拿到第二个用户名,以此类推 拿到所有的用户名

 

 

 

posted @ 2023-09-13 13:30  Xuraniiiz  阅读(21)  评论(0)    收藏  举报