常用绕过
- 注释符混淆
- 空白符
- 特殊符号
- 编码绕过
- 替换
4.0.26550
注释符绕过
过滤的字符需要自己去进行Fuzz,如union后不能有select,过滤database(),等。
依次可以尝试注释符混淆。插入union /*!90000every_word*/ select,破坏了union后接select的结构。
(/* */是注释、/*! */,是注释形式但是里面命令仍然执行,90000是指版本号,mysql到对应版本则执行,这里是让他不执行,只是混淆结构)
3.5.12048
注释换行绕过
另外一种混淆
--+b%oa,b混淆打断union后面不能接select等过滤,- 接着用
--+/#把多余字符b注释掉 - 添加
%0a换行让--+/#不会影响后面的语句
替换绕过 information_schema
- sys.schema_auto_increment_columns
- sys.schema_table_statistics_with_buffer
- x$schema_table_statistics_with_buffer(待定)
- mysql.innodb_table_stats
- mysql.innodb_table_index
以上都可以替换
information_schemaMysql元数据获取方法(information_schema绕过方法)
3.5 join无列名报错
替换information_schema.tables
通过join拼接自身报错,通过using指定列名消除报错,爆出列名
3.5 超大数据包绕过
通过python脚本,测试插入多少参数据之后,后面的字符串就不会再检查