在安全狗v3.5版本中,对version和information_schema有特殊的拦击,测试发现,有一种情况可以绕过对version的拦截。
先放一个能绕过安全狗查询部分信息的一个payload:
1 | /*!union/*/**%0g@*/select*/ 1,2,/*!user/*/**%0g@*/()*/ |
口说无凭,请看图:
可以看见能够绕过安全狗v3.5版本的来查询user(),但是不能查询version看图:
后来测试发现/!select/和version()同时出现,安全狗不会拦截。
当然还需要绕过union和select同时出现的拦截,最终payload为:
/!union//*%0g@//!select/1,2,version()
但是只能用于version() 其他的(e.g. database()、user())都不行
再记录一下对information_schema的拦截,对information_schema的拦截的正则类似:
\w*infomation_schema\w*
所以如果想绕过这里必须找到字符插入information_schema这个字符串当中,并且不能影响mysql执行。