网络安全 频道

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

    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这种就不会有问题了,另外一些语言在处理字符串的时候会强制字符串的字符集类型,不合法的字符会导致转码的失败或者遭到抛弃,所以也不能利用这种类型的攻击。

0
相关文章