来源:自学PHP网 时间:2015-04-17 13:02 作者: 阅读:次
[导读] 我们都知道,常见的XSS漏洞都是通过参数中传入script的方式实现的,而这种XSS很容易通过php的htmlspecialchars处理掉。今天要说到的XSS比较牛,是通过UTF7-BOM来完成注入。Gareth Heyes在 《XSS...
我们都知道,常见的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 www.2cto.com body { font-family: ‘+AHgAJwA7AHgAcwBzADoAZQB4AHAAcgBlAHMAcwBpAG8AbgAoAGEAbA BlAHIAdAAoADEAKQApADsAZgBvAG4AdAAtAGYAYQBtAGkAbAB5ADoAJw-’; —————————————————————————————— 归纳起来,可以说是ie里面页面不能够以+/v8开头。 在实现json回调的时候尤其需要注意防止这种XSS。 比如土豆网的一个示例: http://www.tudou.com/my/channel/item.srv?icode=enQCgQKJTDs&callback=%2B%2Fv8%20%2BADwAaAB0AG0APgA8AGIAbwBkAHkAPgA8AHMAYwByAGkAcAB0AD4AYQBsAGUAcgB0ACgAMQApADsAPAAvAHMAYwByAGkAcAB0AD4APAAvAGIAbwBkAHkAPgA8AC8AaAB0AG0APg-%20xsadas (请使用IE6和IE7访问,IE8及以上已经解决了此bug) 知道了问题所在,解决起来就很简单了,我采取的方法是不接受除字母开头的方法名作为回调,大家可以根据情况采取相应的方法避免即可 |
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com