mysql 注释 绕过_sql注入绕过方法

本文详细介绍了SQL注入攻击的各种绕过方法,包括注释符号利用、大小写绕过、内联注释、双写关键字、特殊编码、空格过滤、操作符替换、等号替代以及引号和逗号的过滤规避。同时,这些策略也提示了在防御SQL注入时应考虑的要点,如全面过滤、转义特殊字符和使用预编译语句。
摘要由CSDN通过智能技术生成

一、注释符号绕过

在sql中常用的注释符号有

--、#、/*xxx*/、

二、大小写绕过

当web正则过滤的时候对大小写不敏感的情况下使用,一般很少会有这种漏洞

比如当过滤了select的时候我们可以采用SEleCT来查询

三、内联注释绕过

把要使用的查询语句放在/*。。。*/中,这样在一般的数据库是不会执行的,但是在mysql中内联注释中的语句会被执行。

四、双写关键字绕过

有的waf只会对关键词过滤一次,这时候采用双写的方式可以绕过。

selselectect * from user; 过滤select后变成 select * from user;

五、特殊编码绕过

十六进制:

select * from users where username = 0x7a68616e677961;

519723567315d45ec0a75c0ce5929176.png

ascii编码绕过

a2925770ad2b4fbc7d7b033fa103fd06.png

六、空格过滤绕过

/**/ ,(),`,tab,两个空格

2b37c32cce0a7ea974686c8949d08b91.png

一定要注意在使用()绕过的时候,括号里边不能有*号

e6fc109a127ea52354daf6b31b07254a.png

七、or and xor not 过滤绕过

and = &&     or = ||  xor = | #   not = !

八、=号过滤绕过

=号和不加通配符的 like 是一样的。

80d383f49c0207e97cefb35887f2d963.png

还可以使用 < >号来绕过

170e983ed9220c8eb562f0d381035ae3.png

<> 在mysql中等于!= 如果在加一个! 双重否定代表肯定 就是= 了

2185563c5d8bdf8da13430da7b7df7d7.png

strcmp(str1,str2):若所有的字符串均相同,则返回STRCMP(),若根据当前分类次序,第一个参数小于第二个,则返回 -1,其它情况返回 1

bf6cedae7c71e25401eaac36de28ee2b.png

between关键字

e278a1c45e791563e36303f7cc3a933e.png

九、引号被过滤

使用十六进制过滤,同上。

常用在web应用使用的字符集为GBK时,并且过滤了引号,就可以试试宽字节。

十、逗号被过滤

813ad7ef7d1641b468dc8a81cff4a422.png

正常情况下的substr表达式是substr(str1,start,long)

可以使用一个替代逗号的方法就是使用from pos for len,其中pos代表从pos个开始读取len长度的子串

f36de21bf53d52b7294bbef1a87ba6f8.png

使用offset关键字

适用于limit中的逗号被过滤的情况

limit 1,2表示从第二行开始,取两行。limit 1 offset 5 表示从第六行开始取一行。

c833b66481bba96baa2c854a094db726.png

暂时这么多,日后更新。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值