实战中遇到的mssql很少,也没有成体系的绕过手法,大多与mysql的绕过一样,但是得注意SQL语句的写法。

and / or 被过滤

  1. 双写
  2. 大小写
  3. 内联注释
  4. 编码

    1. unicode
    2. utf-8
    3. url

      空格 被过滤/拦截

  5. 括号

  6. +
  7. 注释符
  8. 空白字符(%01-%20)

    1. 01,02,03,04,05,06,07,08,09,0A,0B,0C,0D,0E,0F,10,11,12,13,14,15,16,17,18,19,1A,1B,1C,1D,1E,1F,20

    系统关键字(SELECT,WHERE,UNION…)被过滤/拦截

  9. 注释符绕过

  10. 大小写绕过
  11. 内联注释法绕过
  12. 双写

    比较符(><) 被过滤/拦截

  13. between a and b

    等号 被过滤/拦截

  14. like

  15. <

    引号被过滤/拦截

  16. 进制转换(通常十六进制)

    注释符 被过滤/拦截

  17. 手动闭合

    1. id=1' or '1'='1