一、、破解 SQL 查询语句中的字段数
?id=1' order by 3 --+
// --+ 是注释,+ 加号 在MySQL中会转成空格
order by 1 ,by 数字几,就是按照第几列进行排序;如果没有这一行,则报错
如:以下语句,根据第一行排序
select * from table_name order by 1
order by 2,正常返回;order by 3, 报错;所以sql查询语句有两列;
用 + 号是转换成空格, --+ 是把 sql 语句后面的注释掉;
四、获取当前数据库
联合查询猜数据库:
id = 1' union select 1,database()
注意:若是数据显示只显示一行,将id=-1, 此处 id 的值必须是一个在数据库中 id 字段不存在的值,否则联合查询第一条语句的查询结 果将占据显示位,需要的第二条查询语句的查询结果就不能正常显示到浏览器中。
得到数据库名为:pikachu
五、获取数据库中的表
关键的三张表:SCHEMATA、TABLES、COLUMNS,它们分别能爆出数据库名,表名和字段名。
SCHEMATA表:提供了当前mysql实例中所