魔法引号(注释掉 恶意的的单引号双引号 转义字符)可直接杜绝SQL注入
在mysql magic _quotes_gpc
低版本 修改配置文件 强制执行
高版本 删除了配置 可以通过特定函数 开启
addslashes()
魔术引号 不让闭合
绕过
1.不需要闭合
select *from news where id=1
2.仔细查看作用域
3.宽字节注入
多字节编码 多个字符组在一起成为一个字
编码不同会产生歧义 (ascii能找到的都是单字节)
两个单字节——双字节
url编码 十六进制编码
数据库使用gbk编码 可能存在宽字节注入 传一个字符 将反斜杠吃掉成为一个汉字
%df\ 凑成汉字
df9c 运 9c 浅
此时就可将魔法引号绕过进行SQL注入
遇到单引号就饶过
解决办法
1 替代法 用database()替换掉库名
2 利用子查询的嵌套方法
3十六进制法(有标识 在数字前加上0x)
mysql支持十六进制 可以替代字符串
例 user 的十六进制 75736572
将等号后面换成数字即可完成绕过
用sqlmap跑
sqlmap 需要手动闭合
当传参方式是post时 要用burp抓包改十六进制
登录抓包之后点hex
找传参值 然后更改为df
还可以传参汉字
风') or 1=1 -- qwe