网络安全进阶学习第十三课——SQL注入Bypass姿势


一、等号被过滤

  • 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必须大于第一次出现的位置,才能显示第二次出现的位置
      在这里插入图片描述
  • 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
  • 2、换行绕过,例如用%0a
    在这里插入图片描述

  • 3、逻辑括号绕过
    在这里插入图片描述


五、其他绕过方式

  • 1、大小写绕过,如User(),dAtaBASE(),SelEct等。

  • 2、只过滤一次时,双重关键字绕过,如selselectect,ununionion,oorr等。

  • 3、and/or+空格被替换为空时,andand+空格(oror+空格)绕过。

  • 4、编码绕过:如URLEncode编码,ASCII,HEX,unicode编码绕过。


猜你喜欢

转载自blog.csdn.net/p36273/article/details/132141151