本文介绍SQL注入的一些技巧
- 编码绕过
- 大小写
- url编码
- HTML编码
- 十六进制编码
- unicode编码
- 注释
//
--
-- +
-- -
#
/**/
;%00
- 内联注释用的更多,它有一个特性
/!**/
只有MySQL能识别 - e.g.
index.php?id=-1 /*!UNION*/ /*!SELECT*/ 1,2,3
- 只过滤了一次时
union
=>ununionion
- 相同功能替换
- 函数替换
substring
/mid
/sub
ascii
/hex
/bin
benchmark
/sleep
- 变量替换
user()
/@@user
- 符号和关键字
and
/&
or
/|
- 函数替换
- HTTP参数
- HTTP参数污染
id=1&id=2&id=3
根据容器不同会有不同的结果
- HTTP分割注入
- HTTP参数污染
- 缓冲区溢出
- 一些C语言的WAF处理的字符串长度有限,超出某个长度后的payload可能不会被处理
- 二次注入有长度限制时,通过多句执行的方法改掉数据库该字段的长度绕过