好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

IE utf7-BOM XSS漏洞 - 网站安全 - 自学php

我们都知道,常见的XSS漏洞都是通过参数中传入<script>的方式实现的,而这种XSS很容易通过php的htmlspecialchars处理掉。今天要说到的XSS比较牛,是通过UTF7-BOM来完成注入。   Gareth Heyes在 《XSS Lightsabre techniques》中最先提到这种XSS技术,原文如下:   —————————————————————————————— CSS expressions with UTF-7   UTF-7 BOM character can force UTF-7 in a external style sheet Would you let me upload a style sheet? @charset ?UTF-7?; works But you don?t need it - +/v8 is all you need +/v8 HdhCmsTest2cto测试数据 body { font-family: ‘+AHgAJwA7AHgAcwBzADoAZQB4AHAAcgBlAHMAcwBpAG8AbgAoAGEAbA BlAHIAdAAoADEAKQApADsAZgBvAG4AdAAtAGYAYQBtAGkAbAB5ADoAJw-’; ——————————————————————————————   归纳起来,可以说是ie里面页面不能够以+/v8开头。   在实现json回调的时候尤其需要注意防止这种XSS。   比如土豆网的一个示例: http://HdhCmsTesttudou测试数据/my/channel/item.srv?icode=enQCgQKJTDs&callback=%2B%2Fv8%20%2BADwAaAB0AG0APgA8AGIAbwBkAHkAPgA8AHMAYwByAGkAcAB0AD4AYQBsAGUAcgB0ACgAMQApADsAPAAvAHMAYwByAGkAcAB0AD4APAAvAGIAbwBkAHkAPgA8AC8AaAB0AG0APg-%20xsadas   (请使用IE6和IE7访问,IE8及以上已经解决了此bug)   知道了问题所在,解决起来就很简单了,我采取的方法是不接受除字母开头的方法名作为回调,大家可以根据情况采取相应的方法避免即可

查看更多关于IE utf7-BOM XSS漏洞 - 网站安全 - 自学php的详细内容...

  阅读:50次