pikachu闯关(二) pikachu通关

pikachu闯关(二)首先我们要知道字符型和数字型的区别:
当我们输入的是整数并且不需要使用引号闭合时,为数字型,而字符型是当我们输入的内容为字符串类型。字符型和数字型最大的一个区别在于&#xf

首先,您需要了解字符类型和数字类型之间的区别。

如果输入不需要引号的整数,则使用数字类型;如果输入是字符串类型,则使用字符类型。字符类型和数字类型之间最大的区别之一是数字类型不需要用单引号括起来,而字符串通常需要用单引号括起来。因此,字符注入必须用单引号结束,后跟有效负载。

1、查找注入点

科比”和1=1 #

科比”和1=2 #

通过输入以上两条语句并查看结果是否相同来测试是否可以注入。

如果两次结果不同,则可以进行注射。

2、查询字段数

将kobe\’后面的内容改为order by + test。您还可以通过输入unionselect1,2. 进行测试

神户订单2#

如果从1开始实验,输入order by 3,无论是order by 1还是2,都会报错。

显示字段数为2。知道字段的数量是必要的步骤,因为连接查询需要前后相同的列数。接下来,运行联接查询。

3、获取数据库、字段、用户信息等。

kobe\’联盟选择database(),user()#

database() 获取当前数据库名称,user() 获取当前用户。

创建数据库后,每个数据库系统都有相同的库(information_schema),其中包含许多对妥协有用的表,例如: name),并使用这些表中的数据来分阶段渗透。

搜索所有数据库(我们已经知道当前数据库,但这是为了我们可以侵入其他数据库)

使用Union 运行查询时,需要注意前后的列数相同。因为我们知道正面的字段数是2,所以背面的列数也必须是2。第一个数字是1。下面代码中的代表一列,括号中的数字代表整个select 语句中的列。

kobe\’ Union select 1,(信息模式。从模式中选择组concat (模式名称)) #

group_concat() 将所有数据库名称组合在一行上。如果不使用group_concat()函数,则只能逐行显示。在select 语句的末尾,您需要添加limit 0,1。从第一行(rows)开始获取1行.前面的数字limit1,1代表获取第二行。

所有数据库名称均已检索。

选择一个数据库并发布该数据库中的所有表

使用上面获得的数据库名称选择数据库,并使用information_schema库中的TABLES表。

kobe\’ Union select table_name,table_schema from information_schema.tables where table_schema=\’pikachu\’ #

每条内容的第一行是表名。

获取表中的所有列

使用COLUMNS 表检索users 表中的所有列。

kobe\’ Union select column_name,table_name from information_schema.columns where table_schema=\’pikachu\’ and table_name=\’users\’ #

where后面的条件是选择数据库名和表名。 table_schema 是数据库名称,table_name 是表名称。

获取所有列名称。

使用已知信息拖动库

我们在上一步中获取了表和列名称,并使用这些已知条件拖动库。

kobe\’ Union 从用户#中选择用户名、密码

您可以检索用户信息、用户名和密码。密码使用MD5 加密。解密后,密码为:123456 000000 abc123。

字符注入和数值注入的方法和原理是相同的。区别在于闭包是否需要使用单引号。

谢谢大家的观看,别忘了点赞哦~

以上关于#皮卡丘(2)的相关内容摘自网络,仅供参考。相关信息请参见官方公告。

原创文章,作者:CSDN,如若转载,请注明出处:https://www.sudun.com/ask/93258.html

(0)
CSDN的头像CSDN
上一篇 2024年7月5日
下一篇 2024年7月6日

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注