第五关
目的:拿到数据库的用户名和密码
输入?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 拿到第二个用户名,以此类推 拿到所有的用户名




浙公网安备 33010602011771号