知道username和password两个列名后,就可以用来获得用户名了,这里我们已经获得了足够的信息,所以可以不用借助information_schema库了,大大的缩短了payload长度:
union select 1,count(*),concat((select username from users limit 0,1),"==",floor(rand()*2)) as a from user group by a --+获得第一个用户名为Dumb
改变limit参数,获得全部的用户名,这里省略获取过程,直接进入找密码部分。
0x07 获取对应的用户密码在上一步的查询过程中,发现有一个用户名为admin,现在爆出admin用户的密码
爆出admin的密码就是admin
OK,完成本次闯关!
0x08 过关小结这一关使用我这个方法有些迂回,希望写的能让大家看懂,这个方式比较多的依赖information_schema库的应用,所有有一定局限性,但是思路还是挺不错的。
其实可以用ASCII码猜解或者延时注入的方法,同时借助burpsuite的话比这个方法更加省力,但是之前学习了双查询注入,也为了巩固,所以用来练手,恰好也发现了这种注入方式中子查询若使用group_concat()函数无法触发报错,同时也加固了对information_schema表的了解,也算是有了很多成长。
最后,感谢你的观看,如果觉得文中有什么写的不对的地方可以私信或者评论留言,我会仔细的查看,一起进步,一起成长~