首页 > 数据库技术 > 详细

sql注入绕过方法

时间:2020-03-29 18:21:00      阅读:59      评论:0      收藏:0      [点我收藏+]

一、注释符号绕过

  在sql中常用的注释符号有

  --、#、/*xxx*/、

二、大小写绕过

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

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

三、内联注释绕过

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

四、双写关键字绕过

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

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

五、特殊编码绕过

  十六进制:

    select * from users where username = 0x7a68616e677961;

  技术分享图片

 

 

 

  ascii编码绕过

  技术分享图片

 

六、空格过滤绕过

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

  技术分享图片

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

  技术分享图片

 

七、or and xor not 过滤绕过

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

八、=号过滤绕过

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

  技术分享图片

 

 

   还可以使用 < >号来绕过

  技术分享图片

 

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

  技术分享图片

 

 

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

   技术分享图片

 

  between关键字

  技术分享图片

 

 

 九、引号被过滤

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

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

十、逗号被过滤

  技术分享图片

 

 

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

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

   技术分享图片

 

 

   使用offset关键字
  适用于limit中的逗号被过滤的情况
  limit 1,2表示从第二行开始,取两行。limit 1 offset 5 表示从第六行开始取一行。

  技术分享图片

 

   

  暂时这么多,日后更新。

   

 

sql注入绕过方法

原文:https://www.cnblogs.com/zllovellyo/p/12593352.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!