ISA正则化的含义

来源:互联网 发布:datacolor软件下载 编辑:程序博客网 时间:2024/05/09 14:27

ISA发布WEB站点无法访问二级页面(12217)
2009-05-22 20:27:08
 标签:12217 httpfilter 正则化 高位字符   [推送到技术圈]
发布ISA后端的WEB,外端测试WEB首页正常,某些二级页面无法显示。IE返回错误信息:12217,the request was rejected by the http filter.
查看ISA日志,发现提示信息一样。
排查思路:仔细观察URL,发现字符串里边带有action=%C2%DB%CC%B3%D5%B9%C7%F8,这是汉字的utf-8编码。突然记起来,发布的服务器中http筛选器里边对于汉字这种高位字符默认是会过滤掉的。为了保险起见,BAIDU一下,正解!
立即动手,去掉HTTP筛选器里边的阻止高位字符选项。
问题解决!
原理:
阻止高位字符:高位字符包含双字节字符集(Double-ByteCharacter Set,DBCS)字符或Latin1字符的URL会被阻止。这可能会影响到一些方案,如 Microsoft Outlook® Web Access 发布、Microsoft SharePoint® Portal Server 发布,以及满足下列条件的任何方案:GET 请求所传递的参数包含双字节字符集中的某个字符。
补充:
还有一个验证正则化:指的是WEB服务器接收URL经过编码的请求。一般来说,HTTP请求中的非英语字符都会使用unicode编码,比如空格,在URL被编码之后变成%20,还有些常见的例子(/|%2f,/|%5c,?|%3f,%|%25)标准化是将URL经过编码的请求解码的过程。因为%本身就是要编码的URL的一部分,因此攻击者可能想服务器提交一个实际上经过双重编码的URL请求。如果启用验证正则化,则HTTP筛选器会将URL标准化两次。如果第一次标准化后的URL和第二次标准化的URL不一样,则筛选器将拒绝该请求。
验证正则化举例:(APACHE遍历目录漏洞)
攻击URL:../%3f.jsp
实际解析成:../?.jsp
普通防火墙的规则写成这样:过滤?.jsp和%3f.jsp
攻击者变换编码:../%253f.jsp
普通防火墙失去作用
正则化对于这种攻击的检查过程:
对于攻击者变化后的编码检查过程:
攻击者变换编码:../%253f.jsp    -->一次检查结果:../%3f.jsp
攻击者变换编码:../%253f.jsp    -->二次检查结果:../?.jsp
对比两次检查结果:不匹配。动过:丢弃
有人会问:如果攻击者多次变换编码,那ISA的正则化只进行两次,会不会有遗漏呢?
答案是不会!我们继续上一个例子来分析:
现在攻击者的URL升级到第三版:../%25253f.jsp
正则化对于这种攻击的检查过程:
对于攻击者变化后的编码检查过程:
攻击者变换编码:../%25253f.jsp    -->一次检查结果:../%253f.jsp
攻击者变换编码:../%25253f.jsp    -->二次检查结果:../%3f.jsp
对比两次检查结果:不匹配。动过:丢弃
总结:对于验证正则化和阻止高位字符。按照我本人的理解方式是这样的:正则化是对URL中的特殊字符进行编码检查。阻止高位字符是对URL中经过编码的汉字或朝鲜字体等DBCS字符进行过滤。

原创粉丝点击