文章目录
- 一、等号被过滤
- 二、substr、mid等被过滤
- 三、逗号被过滤
- 四、and/or被过滤
- 五、空格被过滤
- 五、其他绕过方式
一、等号被过滤
- 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编码绕过。