2-11空格被设置为过滤时绕过
%23被过滤时可以使用 or ‘ 进行尝试 ?id=1’ or 1=1 or ‘
or被设置为过滤时可以使用||替代
空格被设置为过滤
%09 TAB(水平)
%0a 新建一行
%0c 新的一页
%0d return功能
%0b TAB(垂直)
%a0 空格
/**/ 代替空格
?id=1’ || (select%a0extractvalue(1,concat(0x7e,version())) ||
2-12 内联注释绕过
第一种把关键字替换为空,这时候在后台未区分大小写时,用大小写绕过
第二种方法 当union被设置为过滤时我们可以输入ununionion中间部分会被过滤,这样前后俩个部分就可以拼接
内联绕过/*! */可以用这个将关键字包裹
2-13 宽字节注入
Gbk编码,俩个字符代表一个中文 815C代表一个汉字
‘ 被 \给编码了如图
其中\就是5C 这时候就要在前面加上81来将\给吃掉
这样就能绕过宽字节
2-14报错注入
Extractvalue():从目标XML中返回包含所查询值的字符串
EXRACTVALUE (XML_document,XPath_string);
第一个参数:XML_document是string格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string(XPath格式的字符串)
Concat:返回结果为连接参数产生的字符串
就在第二个参数的位置让他报错’
UPDATEXML (XML_document, XPath_string , new_value);
第一个参数:XML_document是string格式,为XML文档对象的名称,文中为Doc
第二个参数:XPath_string (Xpath格式的字符串)
第三个参数:new_value ,String格式,替换查找到的符合条件的数据
SQL注入防御
代码层
黑名单,白名单,敏感字符过滤,使用框架安全查询,规范输出
配置层
开启GPC,使用UTF-8
物理层
WAF,数据库审计,云防护,IPS(入侵防御系统)