绕过安全狗3.5版本对version的特殊拦截

在安全狗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执行。