用户
 找回密码
 入住 CI 中国社区
搜索
查看: 6290|回复: 9
收起左侧

CI <=2.1.1版本绕过xss_clean()过滤函数缺陷

[复制链接]
发表于 2012-7-20 14:10:27 | 显示全部楼层 |阅读模式
提请所有开发人员、网站主注意本漏洞,处理不当将导致重大安全问题。

漏洞涉及版本:CI <= 2.1.1
漏洞产生原因:
由于CI的内核Security类中xss_clean()函数和_remove_evil_attributes()函数采用黑名单先验过滤机制(即过滤有限的恶意数据)。在存储入数据库、并输出数据至页面中时,若不对数据进行合理编码,攻击者可在浏览器端拼接恶意跨站代码。
漏洞重演:http://blog.kotowicz.net/2012/07/codeigniter-210-xssclean-cross-site.html
解决办法:升级至最新 CI 内核(2.1.2)使用 HTMLPurifier 替代 xss_clean() 的功用
国外安全人员发现的同一缺陷:
http://blog.kotowicz.net/2012/07/codeigniter-210-xssclean-cross-site.html

感谢:北京印天网真公司提供漏洞报告。
发表于 2012-7-20 14:17:18 | 显示全部楼层
关注
发表于 2012-7-20 14:33:15 | 显示全部楼层
本帖最后由 lamtin 于 2012-7-20 14:34 编辑

http://codeigniter.org.cn/forums/thread-3717-1-1.html

HTMLPurifier 相关类库以及助手.
发表于 2012-7-20 14:39:23 | 显示全部楼层
{:soso_e101:}
发表于 2012-7-20 14:41:29 | 显示全部楼层
漏洞。。。。哦买泪滴嘎嘎,,我一直以为xss_clean()能给过滤的非常干净
发表于 2012-7-21 09:15:38 | 显示全部楼层
前一阵也发现这个问题了,用xss_clean函数过滤的$param如果放到value="{$param}"时,还要进行一次转html编码
发表于 2012-7-22 09:29:44 CI中国手机版 | 显示全部楼层
大家应该了解一下,什么时候用xss过滤,什么时候用html转义,还是有很大区别的,对安全性也有好处~
发表于 2012-7-25 17:28:14 | 显示全部楼层
我想问下
如果在页面输出的时候,对输出的值都htmlspecialchars 一下,可否避免类似的这种问题呢?
发表于 2012-7-26 23:46:40 CI中国手机版 | 显示全部楼层
80后奔三ing 发表于 2012-07-25 17:28:14
我想问下
如果在页面输出的时候,对输出的值都htmlspecialchars 一下,可否避免类似的这种问题呢?

可以
发表于 2013-12-6 12:44:07 | 显示全部楼层

<script>alert('a');</script>

本版积分规则