关联:SQL注入总览安全学习

常用绕过

  1. 注释符混淆
  2. 空白符
  3. 特殊符号
  4. 编码绕过
  5. 替换

4.0.26550

注释符绕过

过滤的字符需要自己去进行Fuzz,如union后不能有select,过滤database(),等。 依次可以尝试注释符混淆。插入union /*!90000every_word*/ select,破坏了union后接select的结构。 (/* */是注释、/*! */,是注释形式但是里面命令仍然执行,90000是指版本号,mysql到对应版本则执行,这里是让他不执行,只是混淆结构)

3.5.12048

注释换行绕过

另外一种混淆

  1. --+b%oab混淆打断union后面不能接select等过滤,
  2. 接着用--+/#把多余字符b注释掉
  3. 添加%0a换行让--+/#不会影响后面的语句

替换绕过 information_schema

3.5 join无列名报错

替换information_schema.tables 通过join拼接自身报错,通过using指定列名消除报错,爆出列名

3.5 超大数据包绕过

通过python脚本,测试插入多少参数据之后,后面的字符串就不会再检查