sqlilab1-4关

sql注入操作步骤
1.判断是否存在注入(判断是否未严格校验)--第一要素
1)可控参数的改变能否影响页面的显示结果
2)输入的sql语句是否能够报错,通过数据库的报错我们可以看到数据库的一些语句痕迹
3)输入的sql语句能否不报错,语句能成功闭合
2.判断什么类型的注入
3.语句能否被恶意修改 -- 第二个要素
4.是否能够成功被执行 --第三个要素
5.获取我们想要的数据

less-2操作过程
1.输入?id=1看是否显示结果,在输入id=2查看是否显示不同的结果

 

2.使输入的sql语句报错(不闭合),通过查看报错信息来查看一些语句的信息

3.输入正确的sql语句,使其成功闭合--添加注释符#

4.mysql数据库中存在information_schema库,这个库中保存着mysql数据库中的所有数据库和表的信息,我们需要记住这三个表schemata表(包含所有的数据库名字schema_name)、tables表(包含数据库中所有的表table_schematable_name),columns表(字段名称,table_schematable_namecolumn_name),通过mysql数据库中自带的这个数据库来进行操作。

5. 使用联合查询语句union来进行sql语句的拼接。

1)首先判断下前边的sql语句查询的列数,枚举法,可以用任意的数字来进行占位,我们首先判断只有一列,在判断两列,三列

 

2)利用mysql数据库中自带的库information_scheam来进行操作,找到所有的库,和正在使用的库

3)找到security库中所有的表

4)使用user表,查找表中所有字段

5)知道字段之后,我们就可以获取到全部的usernamepassword

less-1操作过程

1.输入?id=1看是否显示结果,在输入id=2查看是否显示不同的结果

 

2.使输入的sql语句报错(不闭合),通过查看报错信息来查看一些语句的信息

3.输入正确的sql语句,使其成功闭合--添加注释符--+#不知道为啥不行)

4.使用联合查询语句union来进行sql语句的拼接。

1)使用order by确定列数(二分法查找,方便快捷,比直接一个一个测试来说效率更高)

 

2)使用union拼接sql,找到正在使用的库

3)找到库中的所有的表

4)查询得到emails表中所有的字段

5)得到表中数据

 less-3操作过程

1.输入?id=1看是否显示结果,在输入id=2查看是否显示不同的结果

 

 2..使输入的sql语句报错(不闭合),通过查看报错信息来查看一些语句的信息

 3.输入正确的sql语句,使其闭合,添加)和注释符

 4.使用order by 来确定有几列数据(通过以往经验我们知道有3列)

 

5.使用联合查询union

1)确定正在使用的数据库

 2)确定库中的表

3)确定users表中的字段

 4)知道表字段之后,获取我们想要的数据

less-4操作过程


1.输入?id=1看是否显示结果,在输入id=2查看是否显示不同的结果

 

2.使输入的sql语句报错(不闭合),通过查看报错信息来查看一些语句的信息

1)输入单引号发现没变化

 2)输入双引号测试

 3.输入能够闭合的sql语句

 4.使用order by 来确定列数

 5.使用union联合查询

1)确定正在使用的数据库

 2)确定数据库中有哪些表

 3)确定表中字段

 4)查询想要的数据(这个表中没有任何数据)。。。。。。

 

原文地址:https://www.cnblogs.com/pangsong/p/12238543.html