天下网吧 >> 网吧天地 >> 网吧行业 >> 网络追踪 >> 正文

解读IE8 RC1中改进版本的XSS过滤器

2009-2-17不详佚名
 微软公司于1月26日发布了IE8 RC1,以下是IE8 RC1中XSS过滤器功能的改进以及bug修复:

  ·根据系统所在区域,强化URL过滤器:

  包含某些字节序列的URL能够在某些地区通过Beta 2过滤器,例如,位于中国的系统,以下格式的URL就能绕过过滤器:

http://www.fabrikam.com?x=%A0<script>alert();</script>

  该过滤器在URL通过正则表达式引擎之前对URLEncoding进行解码, 在原本的0xA0字节后面加上0x3C字节(“<”)能够使MultiByteToWideChar 失效,这是因为在中国和其他地方, 0XA0 0x3C不是有效的多字节字符。在这种情况下,这些失效能够联合起来使正则表达式匹配不能区分大小写,更糟糕的是,在正则表达式代码的后节点, 0xA0 0x3C序列将被解译为单一的多字节字符,因此,<字符将不会从输入内容中被发现,相应的启发式也不会检测到XSS。

  新发布的IE8 RC1让正则表达式代码将所有输入内容作为单个字节串来处理,在默认字符代码(可以是多字节)中没有字符。

  ·HTTP响应中的NULL将导致处理器忽略对大块HTTP响应数据

  相关缓冲区类别是代码中的rev’d以解决此问题。

  ·增加保护功能以抵御涉及PHP的stripslashes函数攻击情况

  PHP的stripslashes 功能能够删除输入内容中的反斜线(它也可以用单一反斜线取代双反斜线),对于PHP开发者而言,经常在输出字符串前呼叫 stripslashes函数,在这些情况下,如果输出内容启动了服务端的XSS跨站脚本漏洞,漏洞仍然可以被滥用,尽管有IE8 XSS过滤器。

  以下是XSS Filter Architectural Overview(XSS过滤器架构概览)一文中所讨论到的示例:

  上面讨论的解码过程是很灵活的,也可以为不同网络平台制品进行解码。必要的话,该过滤器可以生成额外的签名(根据相同输入数据的不同的解译)。例如,由于不合式的URLEncoded字符可能被不同的网络平台进行不同的处理,因此过滤器必须能够建立适当的签名。

  这说明了新功能的表现,该过滤器现在可以生成额外签名,必要时能够为输入内容的不同解译进行过滤。这些新签名旨在弥补PHP的stripslashes函数功能的不足之处。

  似乎现在大家都不推荐使用PHP的“神奇引号”,如果是因为神奇引号功能而使用PHP代码的stripslashes函数功能,那么就要预想到stripslashes在网络的使用将会下降。

  ·增加overlong UTF-8 服务器的保护功能

  与上面讨论的PHP函数Stripslashes变化相类似,如果在输入中鉴定出超长的UTF-8序列,我们现在可以生成并处理额外签名。

  虽然超长的UTF-8已经在RFC 3629中明确禁止了,但在web服务器平台还不是特别普遍,还不能解决我们代码中的这个攻击矢量。

  ·增强对防止注入FORM和ISINDEX保护功能

  虽然总的来说,微软没有阻止通用HTML注入,不过微软对这两个可以启动与攻击情况(注入脚本攻击)类似的因素已经提高了警惕。

  ·OBJECT标签的CODETYPE属性现在与TYPE属性一样

  OBJECT标签的CODETYPE属性能够提供和TYPE属性一样的功能,IE8 RC1中,这两个属性是平起平坐的。

  ·一般性能改善

  例如:预验证功能更够避免某些情况下正则表达式对性能的影响。

本文来源:不详 作者:佚名

声明
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。文章是出于传递更多信息之目的。若有来源标注错误或侵犯了您的合法权益,请作者持权属证明与本网联系,我们将及时更正、删除,谢谢。 Email:support@txwb.com,系统开号,技术支持,服务联系微信:_WX_1_本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行