sqli-labs 5、6双查询报错注入通关方式 (2)

1547796189880

0x06 从列中获取用户名

知道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

1547797030848

1547797049202

改变limit参数,获得全部的用户名,这里省略获取过程,直接进入找密码部分。

0x07 获取对应的用户密码

在上一步的查询过程中,发现有一个用户名为admin,现在爆出admin用户的密码

1547797233542

爆出admin的密码就是admin

1547791866754

OK,完成本次闯关!

0x08 过关小结

这一关使用我这个方法有些迂回,希望写的能让大家看懂,这个方式比较多的依赖information_schema库的应用,所有有一定局限性,但是思路还是挺不错的。

其实可以用ASCII码猜解或者延时注入的方法,同时借助burpsuite的话比这个方法更加省力,但是之前学习了双查询注入,也为了巩固,所以用来练手,恰好也发现了这种注入方式中子查询若使用group_concat()函数无法触发报错,同时也加固了对information_schema表的了解,也算是有了很多成长。

最后,感谢你的观看,如果觉得文中有什么写的不对的地方可以私信或者评论留言,我会仔细的查看,一起进步,一起成长~

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wspwzf.html