当前位置:WooYun >> 漏洞信息

漏洞概要 关注数(3) 关注此漏洞

缺陷编号: WooYun-2013-43964

漏洞标题: CmsEasy 某处存储型XSS及代码分析

相关厂商: cmseasy

漏洞作者: xfkxfk认证白帽子

提交时间: 2013-11-25 13:43

公开时间: 2014-02-23 13:44

漏洞类型: XSS跨站脚本攻击

危害等级: 高

自评Rank: 15

漏洞状态: 厂商已经确认

漏洞来源: http://www.wooyun.org,如有疑问或需要帮助请联系 help@wooyun.org

Tags标签: 持久型xss 存储型xss XSS xss黑盒测试技巧

1人收藏 收藏
分享漏洞:


漏洞详情

披露状态:

2013-11-25: 细节已通知厂商并且等待厂商处理中
2013-11-25: 厂商已经确认,细节仅向厂商公开
2013-11-28: 细节向第三方安全合作伙伴开放(绿盟科技唐朝安全巡航无声信息
2014-01-19: 细节向核心白帽子及相关领域专家公开
2014-01-29: 细节向普通白帽子公开
2014-02-08: 细节向实习白帽子公开
2014-02-23: 细节向公众公开

简要描述:

CmsEasy 某处存储型XSS,可直接跨进后台,劫持管理。

详细说明:

问题在于论坛的发帖出,帖子的标题title和内容没有过滤,帖子的内容必须使用源代码的格式,正常情况吸收是被过滤的。

先看看/cmseasy/bbs/add-archive.php文件:

1.png



在接收到$_POST内容后,没有过滤,直接inserData,再来看看这个inserData()函数

/cmseasy/bbs/model/db/base.php:

2.png



这里也没有过滤,然后进行insert,再来看insert()这个函数

/cmseasy/bbs/commonlib/DB.php:

3.png



依然没有过滤,进行了getInsertString,再来看这个getInsertString()函数

/cmseasy/bbs/commonlib/DB.php

4.png



最后在这里进行了过滤filterString,那么我们来看看这个过滤函数fileterString()

/cmseasy/bbs/commonlib/DB.php

5.png



到最后也只用了mysqli_real_escape_string 函数来进行过滤,

然后mysqli_real_escape_string函数只能过滤NUL (ASCII 0),\n,\r,\,',",这些字符,所以对于这里的xss根本没起到作用。



漏洞证明:

这论坛开启的情况下,发帖后,当管理员审核发帖,或者编辑帖子时就会触发xss

6.png



打开帖子管理就会触发title处的xss

7.png



编辑帖子时就会触发帖子内容中的xss

8.png

修复方案:

其他地方有过滤,像游客投稿处就进行了过滤,这里也加上过滤就行。

版权声明:转载请注明来源 xfkxfk@乌云


漏洞回应

厂商回应:

危害等级:高

漏洞Rank:20

确认时间:2013-11-25 21:16

厂商回复:

感谢

最新状态:

暂无


漏洞评价:

对本漏洞信息进行评价,以更好的反馈信息的价值,包括信息客观性,内容是否完整以及是否具备学习价值

漏洞评价(共0人评价):
登陆后才能进行评分

评价

登录后才能发表评论,请先 登录