实战中遇到的mssql很少,也没有成体系的绕过手法,大多与mysql的绕过一样,但是得注意SQL语句的写法。
and / or 被过滤
- 双写
- 大小写
- 内联注释
- 编码
- unicode
- utf-8
- url
空格 被过滤/拦截
- 括号
- +
- 注释符
- 空白字符(%01-%20)
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...)被过滤/拦截
- 注释符绕过
- 大小写绕过
- 内联注释法绕过
- 双写
比较符(><) 被过滤/拦截
between a and b
等号 被过滤/拦截
like
><
引号被过滤/拦截
- 进制转换(通常十六进制)
注释符 被过滤/拦截
- 手动闭合
id=1' or '1'='1