网站地图    收藏   

主页 > 后端 > 网站安全 >

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

来源:自学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

添加评论