文章目录
一、等号被过滤
- 1、like,rlike语句,其中rlike是正则
- 2、大于号>,小于号<
- 3、符号<>:<>为不等于的意思相当于!=
- 4、采用regexp函数
- 5、in
- 6、between
二、substr、mid等被过滤
- 1、
substring、substrB
- 2、
locate(str1,str2)
返回str1字符串在str2里第一次出现的位置,没有则返回0; - locate(str1,str2,
pos
) 返回str1字符串在str2里pos(起始位置)出现的位置,没有则返回0; pos必须大于第一次出现的位置,才能显示第二次出现的位置
- locate(str1,str2,
- 3、
position(str1 in str2)
用法与locate类似,返回str1字符串在str2出现的位置,没有则返回0 - 4、
instr( string1, string2 )
#string1:源字符串,要在此字符串中查找。 #string2:要在string1中查找的字符串 。 - 5、
lpad(string , length , pad_string)
、rpad(string , length , pad_string)
#string:被填充的字符串,length:返回的字符串长度,pad_string:填充字符串,是个可选参数
三、逗号被过滤
- 1、采用%EF%BC%8C %EF%BC%8C这是中文的逗号,大部分不能用,但有些函数可以用
- 2、采用from xx for xx 一般能在mid、substr函数使用
四、and/or被过滤
- 使用&&、||或者like
五、空格被过滤
- 1、注释符绕过:
//, -- , /**/, #, --+, -- -, ;,%00,--a,/*!*/
。 - 1.1、
/*!*/
是内联注释,只要里面的数字大于你的数据版本,就会失真。 我这里版本是5.7.26 如图/!23232user()/里面的user()是会被执行的。但当换成63232就大于了版本,就无法被执行了。这方法可以用来绕waf
。
- 1.1、
- 2、换行绕过,例如用%0a
- 3、逻辑括号绕过
五、其他绕过方式
- 1、大小写绕过,如User(),dAtaBASE(),SelEct等。
- 2、只过滤一次时,双重关键字绕过,如selselectect,ununionion,oorr等。
- 3、and/or+空格被替换为空时,andand+空格(oror+空格)绕过。
- 4、编码绕过:如URLEncode编码,ASCII,HEX,unicode编码绕过。
本文转载自: https://blog.csdn.net/p36273/article/details/132141151
版权归原作者 p36273 所有, 如有侵权,请联系我们删除。
版权归原作者 p36273 所有, 如有侵权,请联系我们删除。