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

文章目录

  • 一、等号被过滤
  • 二、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;
    网络安全进阶学习第十三课——SQL注入Bypass姿势_第1张图片

    • locate(str1,str2,pos)
      返回str1字符串在str2里pos(起始位置)出现的位置,没有则返回0;
      pos必须大于第一次出现的位置,才能显示第二次出现的位置
      网络安全进阶学习第十三课——SQL注入Bypass姿势_第2张图片
  • 3、position(str1 in str2)
    用法与locate类似,返回str1字符串在str2出现的位置,没有则返回0
    网络安全进阶学习第十三课——SQL注入Bypass姿势_第3张图片

  • 4、instr( string1, string2 )
    #string1:源字符串,要在此字符串中查找。
    #string2:要在string1中查找的字符串 。
    网络安全进阶学习第十三课——SQL注入Bypass姿势_第4张图片

  • 5、lpad(string , length , pad_string)rpad(string , length , pad_string)
    #string:被填充的字符串,length:返回的字符串长度,pad_string:填充字符串,是个可选参数
    网络安全进阶学习第十三课——SQL注入Bypass姿势_第5张图片
    网络安全进阶学习第十三课——SQL注入Bypass姿势_第6张图片


三、逗号被过滤

  • 1、采用%EF%BC%8C
    %EF%BC%8C这是中文的逗号,大部分不能用,但有些函数可以用

  • 2、采用from xx for xx
    一般能在mid、substr函数使用
    网络安全进阶学习第十三课——SQL注入Bypass姿势_第7张图片


四、and/or被过滤

  • 使用&&、||或者like

五、空格被过滤

  • 1、注释符绕过://, -- , /**/, #, --+, -- -, ;,%00,--a,/*!*/
    网络安全进阶学习第十三课——SQL注入Bypass姿势_第8张图片

    • 1.1、/*!*/是内联注释,只要里面的数字大于你的数据版本,就会失真。
      网络安全进阶学习第十三课——SQL注入Bypass姿势_第9张图片
      我这里版本是5.7.26
      网络安全进阶学习第十三课——SQL注入Bypass姿势_第10张图片
      如图/!23232user()/里面的user()是会被执行的。但当换成63232就大于了版本,就无法被执行了。这方法可以用来绕waf
  • 2、换行绕过,例如用%0a
    网络安全进阶学习第十三课——SQL注入Bypass姿势_第11张图片

  • 3、逻辑括号绕过
    网络安全进阶学习第十三课——SQL注入Bypass姿势_第12张图片


五、其他绕过方式

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

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

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

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


你可能感兴趣的:(web安全,web安全,学习)